2012-05-10 11 views
1

私はブーストを使用して、トークンに文字列を分割コードを持っている:boost :: iter_splitで分割するときに空のトークンを避けるには?

boost::algorithm::iter_split(
    result_vector, input, boost::algorithm::first_finder(delimiter)); 

結果が空のトークンが含まれていないことを、このようにを変更するための最良かつ最もエレガントな方法は何ですか?

例えば、私の入力があってもよい。

.
foo.bar.baz. 

はデリミタです。

答えて

2

文字列 をテストするラムダ関数を使用して、結果のベクトルでremove_ifを使用してください。

auto newEndIt = std::remove_if(result_vector.begin(), result_vector.end(), [&](const std::string& it)->bool 
{ 
    return it.empty(); 
}); 

それからちょうど/なぜあなたのポストは、問題を解決する方法を記載してくださいあなたのポストの品質を向上させるために、ベクターに

result_vector.resize(newEndIt - result_vector.begin()); 
+0

のサイズを変更します。 –

関連する問題