0
我想遍歷字符串中的標記:如何判斷boost :: split_iterator是否在字符串中間開始?
#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]
處開始搜索,而不是在字符串的開頭?當然,因爲我想避免不必要的複製,所以我不想在子字符串副本str.substr(5)
上進行搜索。