すまんが「俺のやり方だと」だけじゃどこが問題なのか分らん。
俺のやり方だと出来るとしか言いようがない。

boost::tokenizerならtoken_iterator使うだけで1,2,5はできるだろ。
>>8の3と4は関数オブジェクトを適当に書いてfilter_iteratorでtokenizerに渡せば解決。