这篇博文只是为了给自己留个笔记而已.
1.boost::tokenizer 的用法.
当一个字符串使用某个分隔符的时候, 想快速的拿到分割后的字串, 可以使用.
- #include <boost/tokenizer.hpp>
- int main()
- {
- std::string teststr = "14,24,rt| &44,56";
- boost::char_separator<char> separator(",");
- boost::tokenizer<boost::char_separator<char> > tokens(teststr, separator);
- std::vector<std::string> splits;
- boost::tokenizer<boost::char_separator<char> >::iterator token_iter;
- for (token_iter = tokens.begin(); token_iter != tokens.end(); token_iter++)
- splits.push_back(*token_iter);
- return 0;
- }
2.boost::split 的用法.
可以使用多个分隔符, 下面的示例代码就是用 | & \ 这三个字幅作为分隔符,任何一个都OK.
缺点是在有的编译器会出现讨厌的告警, 不过最新版本的boost库使用的底层算法应该没有这个问题, 我没有验证, 猜测而已.
- #include <boost/algorithm/string/classification.hpp>
- #include <boost\algorithm\string\split.hpp>
- int main()
- {
- std::vector<std::wstring> split;
- std::wstring ext_path(L"\\Device HarddiskVolume1|Windows&&System32 Drivers\\tdi.sys");
- boost::split(split, ext_path, boost::is_any_of(L"|& \\"), boost::algorithm::token_compress_on);
- return 0;
- }
阅读(1110) | 评论(0) | 转发(0) |