云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C++ boost库总结

C++ boost库总结

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 4:20:08

2. all(检测字符串中的所有元素是否满足给定的判断式) 3. 仿函数is_equal, is_less, is_not_greater

4. is_space, is_alnum, is_alpha, is_cntrl, is_digit(十进制数字), is_graph,

is_lower, is_print, is_punct(是否是标点符号), is_upper, is_xdigit(字符是否为十六进制数字), is_any_of(字符是否是参数字符序列中的任意数字), if_from_range(字符是否位于指定的区间[c1,c2]内)

5. trim_left、trim_right、trim

6. find_first、find_last、find_nth、find_head、find_tail

7. replace/erase_first、replace/erase_last、replace/erase_nth、

replace/erase_all、replace/erase_head、replace/erase_tail

8. find_all、split、find_iterator、split_iterator、join

1. tokenizer类似string_algo::split,为更专业的token划分工具。tokenizer库提

供预定义好的四个分词对象:

1. char_delimiter_separator:使用标点符号分词,是默认的分词函数对象。

已被声明废弃

2. char_separator:支持一个字符集合作为分隔符,默认行为与

char_delimiter_separator类似

3. escaped_list_separator:用于CSV格式的分词 4. offset_separator:使用偏移量来分词

2. xpressive,类似boost.regex的正则表达式解析器,同时还是一个类似于

boost.spirit的语法分析器,并且将这两种完全不相交的文本处理方式完美的融合在了一起

3. xpressive使用regex_token_iterator<>提供了强大的分词迭代器

第6章 正确性测试

1. 测试对于软件开发是非常重要的,程序员——尤其是C++程序员更应该认识到这一

2. BOOST_ASSERT宏类似于assert宏,提供运行时断言,但功能有所增强。可以

通过BOOST_DISABLE_ASSERTS来关闭。当定义

BOOST_ENABLE_ASSERT_HANDLER后,断言触发时将会调用boost::assertion_failed回调

3. BOOST_VERIFY类似BOOST_ASSERT,但断言表达式一定会被求值,Release

下仍然会失效(放弃BOOST_VERIFY)

4. BOOST_STATIC_ASSERT,编译时断言。可以出现在程序的任何位置,而不一定

只在函数域内

5. 测试用例是一个包含多个测试断言的函数,它是可以被独立执行测试的最小单元,

各个测试用例之间是无关的,发生的错误不会影响到其他测试用例

第7章 容器与数据结构

1. array是的C原生数组的STL接口包装

2. std::vector是vector对bool的特化,内部保存的实际为bit,支持动态长

度。std::bitset大小固定,但支持更多的位运算

3. boost.dynamic_bitset类似std::vector可以动态长度,同时提供了丰富的

位运算。dynamic_bitset还支持集合相关操作

4. 哈希容器:boost::unordered_map、boost::unordered_set、

boost::unordered_multimap、boost::unordered_multiset

5. boost::bimap,双向映射容器,提供left、right两个试图。支持的集合类型有:

set_of、multiset_of、unordered_set_of、unordered_multiset_of、list_of、vector_of、unconstrained_set_of

6. bimap的左右视图还可以通过标签访问:

bimap, tagged> bm; bm.by().insert(make_pair(1, \相当于使用左视图 bm.by().insert(make_pair(\相当于使用右视图

7. circular_buffer为大小固定的循环缓冲区,

circular_buffer_space_optimized类似circular_buffer但只在确实需要时才分配内存,并且当容器内元素减少时自动释放内存

8. tuple是固定数目非同质元素容器。tuple是std::pair的泛化,可以从函数返回任

意数量的值,也可以代替struct组合数据

9. 和std::make_pair对应,也有个make_tuple用来简化tuple的创建 10. tie()可以生成一个元素类型全是引用的tuple,相当于make_tuple(ref(a),

ref(b), ...),可以用于左值,通常用来接收返回tuple或pair函数的返回值,可以看成是对tuple的解包

11. element::type可以给出T中第N个元素的类型,length::value可以

给出T的元素数量

12. any能够容纳任意类型,可以用any_cast(a)类型安全的取出any中的值(让

人联想到Ogre::Any)

13. any可以持有原始指针,但这样的用法很不安全,会导致内存泄露。应该使用智能

指针包装原始指针,这样在any析构时智能指针会自动的调用delete,从而安全的释放资源

14. 如果希望一种数据结构具有tuple那样的容纳任意类型的能力,又可以在运行时动

态变化大小,那么就可以用any作为元素类型搭配容器

15. variant是对C/C++中union概念的增强和扩展。varinat是有界类型,元素类

型范围由用户指定,any是无界类型,可以容纳任意类型

16. multi_array,相当于int ma[X][Y][Z]的多维数组。multi_array没有

异常机制来处理错误,保证数组范围不越界是库用户自己的责任

17. property_tree是一个保存了多个属性值的树形数据结构,可以用类似路径的简单

方式访问任意节点的树形,而且每个节点都可以用类似STL的风格遍历子节点。property_tree特别适合于应用程序的配置数据处理,可以解析xml、ini、json和info四种格式的文本数据,使用它能减轻自己开发配置管理的工作。

第8章 算法

1. boost foreach库提供BOOST_FOREACH和BOOST_REVERSE_FOREACH

来实现对容器的正向和反向遍历

2. minmax(a, b)可在一次处理中同时获得最大最小值,执行效率上有很大提高(有

提前优化的感觉了)

3. minmax_element算法族可以得到迭代器区间内的最大最小值

第9章 数学与数字

搜索更多关于: C++ boost库总结 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

2. all(检测字符串中的所有元素是否满足给定的判断式) 3. 仿函数is_equal, is_less, is_not_greater 4. is_space, is_alnum, is_alpha, is_cntrl, is_digit(十进制数字), is_graph, is_lower, is_print, is_punct(是否是标点符号), is_upper, is_xdigit(字符是否为十六进制数字), is_any_of(字符是否是参数字符序列中的任意数字), if_from_range(字符是否位于指定的区间[c1,c2]内) 5. trim_left、trim_right、trim 6. find_first、find_last、find_nth、find_head、find_tail 7.

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com