当前位置:首页 > C++ boost库总结
3. typeof库使用宏模拟了C++0X中的typedef和auto关键字,可以减轻书写繁琐
的变量类型声明工作,简化代码。对于用户自定义类型需要手工用宏注册。(语法并没那么好看,不准备使用)
4. optional
化”的概念(Nullable
5. optional
optional对象,但不能处理optional
6. optional
大对象的拷贝开销
7. 用于初始化的assign库(仅限于STL标准容器,通过重载“+=”和“,”运算符实现):
#include
vector
map
8. assign还支持insert()、push_front()、push_back()(通过重载“()”实现):
vector
9. assign也可以将“()”和“,”混用:
vector
push_back(v), 1, 2, 3, 4, 5;
push_back(v)(6), 7, 64 / 8, (9), 10; deque
push_front(d)() = \
10. assign list_of()函数:
vector
deque
map
11. assign map_list_of/pair_list_of函数:
map
12. assign tuple_list_of用户初始化元素类型为tuple的容器
13. assign repeat()可以重复生成值,repeat_fun()可以重复无参函数或仿函数,
range()则可以从序列中取出部分或全部:
vector
deque
14. assign支持8个STL标准容器(vector、string、deque、list、set、multiset、
map、multimap),对容器适配器(stack、queue、priority_queue)则需要通过to_adapter():
stack
queue
15. assign也支持部分不在STL中的非标准容器slist、hash_map、hash_set,因为
其符合标准容器定义,同时也支持大部分boost容器:array、circular_buffer、unordered等
16. assign list_of()嵌套:
vector
17. assign ref_list_of()、cref_list_of()、ptr_push_back()、ptr_list_of()还支持以引
用或指针来构造初始化: int a = 1, b = 2, c = 3;
vector
18. boost::swap是对std::swap的增强,并且扩充了对数组的支持:
int a1[10]; std::fill_n(a1, 10, 5); int a2[10]; std::file_n(a2, 10, 20); boost::swap(a1, a2);
19. 单件boost::details::pool::singleton_default
承或非继承形式(最恨main之前的事情了)
20. 单件boost::serialization::singleton
承形式。继承方式更彻底一些,非继承方式不影响原有代码
21. boost::tribool三态bool,indeterminate(tribool)可判断一个三态bool是否处
于不确定状态
22. 选择optional
optional
23. using namespace std::rel_ops; 则一旦为类定义了operator==和<,则自动具
有!=、>、<=和>=的功能。boost operators库提供了对该功能的增强,使用时只需继承自这些类并提供指定的operator重载即可获得附送的重载:
1. equality_comparable
5. incrementable
less_than_comparable
9. additive:可加减概念,组合了addable和subtractable 10. multiplicative:可乘除概念,组合了multipliable和diviable 11. arithmetic:算术运算概念,组合了additive和multiplicative 12. unit_stoppable:可步进概念,组合了incrementable和decrementable 13. public dereferenceable
operator*,可自动实现operator->。P为operator->返回类型,一般为T*
共分享92篇相关文档