boost::string_algo详解1
来源:互联网 发布:托米.韦素 知乎 编辑:程序博客网 时间:2024/06/05 05:52
1. 概述
C++98在标准库中提供了字符串标准类std::string. 它有一些成员函数可以查找子串, 访问字符, 可以执行基本的字符串处理功能. 由于std::string符合容器的定义, 也可以把它看做是元素类型为char(或wchar t)的序列容器, 可以使用标准算法来对它进行运算, 但标准算法并不是为字符串处理定制的, 很多时候会显得有些"笨拙".string_algo库的出现改变了这个尴尬的局面. 它是一个非常全面的字符串算法库, 提
了大量的字符串操作函数, 如大小写无关比较、修剪、特定模式的子串查找等.
string_algo库位于名字空间boost::algorithm, 为了使用string_algo组件, 需要包含头文件<boost/algorithm/string.hpp>。string_algo同样也是一组类的总称,相当于一个sub library了。其位置在boost/algorithm/string目录下,包含的主要内容如下:
case_conv.hpp: 大小写转换,包含 to_lower_copy, to_lower, to_upper_copy, to_upper
classification.hpp: 字符类别,包含 is_classified(std::ctype_base::mask, locale), is_space, is_alnum, is_upper, is_xdigit等方法
cllection_traits.hpp: 一大堆traits类,用于统一char的各种集合类,比如 STL collections, c-style array, null-terminated c-strings等的编程接口。
compare.hpp: 字符串字符的functor,提供了is_equal, is_iequal两个predicates.
concept.hpp: concept定义,包含FinderConcept和FormatterConcept
constants.hpp: 定义了一个enum token_compress_mode_type
erase.hpp: 提供了一组从string中移除字符和子串的方法,什么样的都有。
find.hpp: 提供了一组从string中寻找子串的方法,允许指定各种寻找子串的条作。
finder.hpp: 定义了一组生成string finder的方法
formatter.hpp: 定义了一组生成string formatter的方法
predicate.hpp: 提供了一组predictate, 包含starts_with, ends_withs, contains等
replace.hpp: 提供了一组从string中替换子串的方法
split:hpp: 提供了一组分割子串的方法。
trim.hpp: trim算法。
2. 命名规则
string_algo库中的算法命名遵循了标准库的惯例, 算法名均为小写形式, 并使用不同的前缀或者后缀来区分不同的版本, 如下:前缀i: 有这个前缀表明算法是大小写不敏感的,否则是大小写敏感的:
后缀copy: 有这个后缀表明算法不变动输入, 返回处理结果的拷贝, 否则算法原地处理, 输入即输出.
后缀if: 有这个后缀表明算法需要一个作为判断式的谓词函数对象,否则使用默认的判断准则.
3. 算法分类
string_algo库提供的算法共分五大类,如下:1. 大小写转换
2. 判断式与分类
3. 修剪
4. 查找与替换
5. 分割与合井
4. 例: 3.1-3.3
阅读全文
0 0
- boost::string_algo详解1
- boost::string_algo详解1
- 【Boost】boost::string_algo详解1
- boost::string_algo
- boost string_algo
- Boost string_algo
- 【Boost】boost::string_algo详解2——find相关函数
- 【Boost】boost::string_algo详解5——erase相关函数
- 【Boost】boost::string_algo详解6——replace相关函数
- 【Boost】boost::string_algo详解7——join的应用
- boost::string_algo详解4——trim_if,trim_copy_if,trim_xxxx_if,trim_xxxx_copy_if
- boost::string_algo详解5——erase相关函数
- boost::string_algo详解6——replace相关函数
- boost::string_algo详解6——replace相关函数
- boost::string_algo详解7——join的应用
- boost::string_algo详解2——find相关函数
- boost::string_algo详解3——finder的简单应用
- boost::string_algo详解2——find相关函数
- Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
- dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
- 将一个表中的某个字段根据id关联写入到另一张表中的某个字段中去
- BLE-NRF51822教程12-sdk中按键功能的使用
- 在CentOS6上安装mysql5.6.21
- boost::string_algo详解1
- WebSocket与消息推送
- WordPress:SEO的必备品,WordPress的定义
- vscode中使用markdown
- 做10年Windows程序员与做10年Linux程序员的区别
- Ubuntu 16.04 下编译安装CPU版Caffe
- boost::string_algo详解2——find相关函数
- VS 串口通信SerialPort,官方demo
- boost::string_algo详解3——finder的简单应用