j永久网站厦门建设局地址
web/
2025/10/3 7:46:50/
文章来源:
j永久网站,厦门建设局地址,如何设置网站描述,北京网页设计公司兴田德润在那里http://www.boost.org/doc/libs/1_46_1/doc/html/string_algo.html 这个库是个 headers only library 这个库提供了STL没有提供的 string-related算法, 但是实现做到了可以用在任何 character 的 container上 split 在写在线状态的改造时候要把一个字符串中描述的几种类型拆… http://www.boost.org/doc/libs/1_46_1/doc/html/string_algo.html 这个库是个 headers only library 这个库提供了STL没有提供的 string-related算法, 但是实现做到了可以用在任何 character 的 container上 split 在写在线状态的改造时候要把一个字符串中描述的几种类型拆出来, 引发了这个问题, 去标准库里找了也没找到, 后来在boost库中找到了string_algo这个库, 以下是我写的一个使用split的例子 1 #include boost/algorithm/string.hpp2 #include iostream3 #include string4 #include vector5 using namespace boost::algorithm;6 using namespace std;7 int main(){8 string str(miss,you.just.call_to,say,I~love~you);9 vectorstring strVec;
10 split(strVec, str, is_any_of(,.));
11 vectorstring::iterator it strVec.begin();
12 for (; it!strVec.end(); it){
13 cout *it endl;
14 }
15 return 0;
16 } 运行的结果就是都拆出来了 miss you just call to say I~love~you, 注意分隔符是,. 没有用~, 所有后面的I~love~you没有拆 头文件统一的话就用的#includeboost/algorithm/string.hpp 9, 10行就是split的使用方式 2. 我们用的头文件是 boost/algorithm/string.hpp, 这个头文件只用来包括其他具体的头文件, 在 algorithm/string目录下如 split的就是 boost/algorithm/string/split.hpp, 里面定义了几个函数模板, 应该说这里面全是函数模板, 另外还可以看到, 这就是headers only library trim 在写群聊中有遇到去掉一个string当中的空格std中没有这样的算法在boost::string_algo中找到了trim, 但它只能去除头尾这个也很有用 头文件是 boost/algorithm/string/trim.hpp 或boost/algorithm/string.hpp, 写了一些trim的测试代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include boost/algorithm/string.hpp #include iostream #include string using namespace boost::algorithm; using namespace std; int main(){ string str abc ... ; cout before trim str str endl; trim(str); cout after trim str str endl; string strOrigin 12324342231436576abc0cba43455465767678878; str strOrigin; cout before trim str str endl; trim_if(str, is_any_of(1234567890)); cout after trim str str endl; string str2 trim_copy_if(strOrigin, is_any_of(1234567890)); cout after trim str2 str2 endl; string str3 trim_left_copy_if(strOrigin, is_any_of(1234567890)); cout after trim str3 str3 endl; string str4 trim_right_copy_if(strOrigin, is_any_of(1234567890)); cout after trim str4 str4 endl; trim_left_if(strOrigin, is_any_of(1234567890)); cout after tim_left , strOrigin strOrigin endl; trim_right_if(strOrigin, is_any_of(1234567890)); cout after tim_right, strOrigin strOrigin endl; return 0; } 注意trim是一系列的函数,有最普通的默认去空格的trim, 也有指定去什么的trim_if, trim_left_if, 这是直接在参数指定的string上操作,也有把结果单独生成一个string的trim_copy_if, trim_left_copy_if boost库在unix下的安装文档, http://www.boost.org/doc/libs/1_52_0/more/getting_started/unix-variants.html, 只需要简单的执行脚本就行了,会编译链接生成相应的库,且用头文件拷到相关的目录, 我自己在运行那个./bootrap脚本的时候开始老不成功,后来 google了一下是因为其要运行的 tools/..../build.sh没有 chmod x
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86098.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!