Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有使用 boost 将字符串拆分为标记的代码:
boost::algorithm::iter_split( result_vector, input, boost::algorithm::first_finder(delimiter));
什么是最好和最优雅的方法来改变它以使结果不包含空标记?
例如,我的输入可能是:
foo.bar.baz.
分隔符在哪里.。
.
只需在结果向量上使用 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());