我想遍历字符串中的标记:
#include <boost/algorithm/string.hpp>
using namespace boost::algorithm;
typedef split_iterator<std::string::const_iterator> SplitIter;
for(SplitIter i = make_split_iterator(str, token_finder(is_space()));
i != SplitIter(); ++i)
std::cout << *i << std::endl; // prints token
这种使用 的方法split_iterator
对我来说是理想的,因为它不会将匹配项复制到向量中,而只是迭代它找到的范围,因此它非常有效。
现在,我该如何修改它,以便拆分迭代器从 开始搜索str[5]
,例如,而不是在字符串的开头?当然,因为我想避免不必要的复制,所以我不想在子字符串 copy 上进行搜索str.substr(5)
。