STL/Boost/TBB
Alan_Pisces
这个作者很懒,什么都没留下…
展开
-
std::vector
1. 向后插入很快,先前出入为O(n); 2. 在其Capaity()范围内,可以很快的执行push_back()等增长性操作,但是在其范围外,则会重新分配更大的内存,并致辞那个拷贝转移。 这意味着以前元素的reference,pointer,iterator可能失效。 3. 其构造函数如果指定元素个数N,会调用N次默认构造函数。原创 2009-11-18 16:14:00 · 344 阅读 · 0 评论 -
仿函数(又名函数对象)
1. 仿函数可以理解为实现类operator ()重载的类。 2. 仿函数需要提供默认构造,这是一种无形效率损失。 3. 优点: a. 仿函数可以实现配接性; b. 防函数可以具有更加灵活的特点。因为类中可以拥有自己的成员函数和成员变量; c. 可以实现更加复杂的操作,而不会显得函数太拥挤而不清晰。原创 2009-11-18 16:27:00 · 525 阅读 · 0 评论 -
STL以”Value“为核心
STL中以"Value"为核心。即容器中存入的都是副本,并非引用;也就是说STL中的操作都是值拷贝操作,而非"reference"操作。因此需要注意: a. 类对象需要支持拷贝构造,赋值运算符重载,operator b. 析构函数要公有。原创 2009-11-18 17:02:00 · 391 阅读 · 0 评论 -
std::string
1. 默认不含/0,且其视/0为一般符号,无特殊含义; 转化为char*时,遇到/0终止; 2. data()返回char*,但是不包含/0,非有效的char*;c_str()返回有效char*; data()和C_str()返回的char*空间为string所有,因此不可以修改或释放其内存; copy()同data(); 3原创 2009-11-18 14:30:00 · 368 阅读 · 0 评论 -
std I/O
ios stream --------------> buffer(实际I/O操作) | | |原创 2009-11-18 14:53:00 · 591 阅读 · 0 评论 -
模板相关
1. 模板被具体参数化时,不进行默认类型转化,即使类型相融的情况下:如short-->int。 2. 定义抽象模板类成员函数: template typename T::fun tempfun; 注意:a. 模板的具体实现类必须包含成员函数fun; b. typename必不可少,否则会编译错误。原创 2009-11-18 15:26:00 · 328 阅读 · 0 评论 -
std::map&&std::set
1. 用Inert()插入元素,push_back()与push_front()毫无意义,因为容器内部采用有序二叉树自动排序。 2. MultiSets与MultiMaps的Key可以重复,Set和Map则不可以。 3. 调用remove()等变动性函数,更改Set和Map的有序二叉树结构;直接操作会破坏已排好序的平衡二叉树结构。原创 2009-11-18 15:51:00 · 356 阅读 · 0 评论 -
标准化版本头文件
C++: 无前后缀; C: 前缀有C,无后缀。原创 2009-11-18 15:17:00 · 337 阅读 · 0 评论