使用boost :: iter_split分割时如何避免使用空标记?

时间:2012-05-10 05:34:55

标签: string boost

我有使用boost:

将字符串拆分为标记的代码
boost::algorithm::iter_split(
  result_vector, input, boost::algorithm::first_finder(delimiter));

更改此内容的最佳和最优雅的方法是什么,以便结果不包含空标记?

例如,我的输入可能是:

foo.bar.baz.

其中.是分隔符。

1 个答案:

答案 0 :(得分:2)

只需在生成的向量上使用remove_if,并使用lambda函数测试字符串

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());