1

我有使用 boost 将字符串拆分为标记的代码:

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

什么是最好和最优雅的方法来改变它以使结果不包含空标记?

例如,我的输入可能是:

foo.bar.baz.

分隔符在哪里.

4

1 回答 1

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());
于 2012-08-06T04:48:57.120 回答