16.将vector和string传给遗留的API
*vector ,const char* c ,用 &vector[0]即可
*string ,string.c_str()
17.使用“交换技巧”来修正过剩容器
*vector<Contestant> vec(contestants).swap(contestants)
18.避免使用vector<bool>
两个问题
*它不是一个STL容器,它并不容纳bool
如果C是一个T类型的对象的容器,且C支持operator[],那么以下代码必须能够通过编译
T* p= &c[0] //无论operator[]返回什么,都可以用这个地址初始化一个T*
但是vector<bool>中做了优化,里面存放的是bit值
deque内部内存不是连续的,但里面存的是bool值
还有一个bitse可解决这个问题
19.了解相等和等价的区别
*相等的概念是基于operator== ,等价的概念基于operator<
20.为指针的关联容器指定比较类型
关联容器对 相同 的定义是等价
21.永远让比较函数对相等的值返回false
22.避免原地修改set和multiset的键