我似乎缺少一些关于提升字符串算法的东西.我正在尝试使用带有Clasifier的split_iterator作为分割点.所以,例如我希望能够做到这样的事情:
make_split_iterator(str, is_space);
Run Code Online (Sandbox Code Playgroud)
但是make_split_iterator需要一个Range和一个Finder.所以我需要找到一些序列来从分类器创建一个Finder.有谁知道怎么做,或者甚至可能吗?
您可以使用token_finder,如make_split_iterator(str, token_finder(is_space()))或make_split_iterator(str, token_finder(is_any_of(" ")))等.
完整示例,假设您的目标是标记化(因此token_compress_on)
#include <string>
#include <iostream>
#include <boost/algorithm/string.hpp>
int main()
{
std::string str = "This is a test string";
for( boost::algorithm::split_iterator<std::string::iterator> i
= make_split_iterator(str, token_finder(
boost::algorithm::is_space(),
boost::algorithm::token_compress_on));
i != boost::algorithm::split_iterator<std::string::iterator>();
++i)
{
std::cout << *i << '\n';
}
}
Run Code Online (Sandbox Code Playgroud)
测试运行:https://ideone.com/vQ2ZM
| 归档时间: |
|
| 查看次数: |
1866 次 |
| 最近记录: |