-
避免使用
vector<bool>
,尽量使用bitset
或者deque<bool>
因为
vector<bool>
不是容器,底层是bool值按bit存储 -
STL list容器数据结构上看是带空头的双向循环链表
-
容器迭代器要注意迭代器失效问题,insert/erase后要及时更新迭代器
-
auto_ptr不能管理数组对象、自定义对象;应该使用C++11中的智能指针加自定义删除器
unique_ptr<char, function<void(char*)>> uniPtr(new char[100], [](char *p)->void { // 返回值为空,可省略 delete []p; } ); // make_unique 不支持自定义删除器
-
为什么 C++ 有了函数指针还要引入
std::function
?函数指针指向的是代码段中的一段代码,不具备捕捉上下文的能力,当一个回调传入需要模块A中定义的函数和模块B的运行产生的数据一起传递给C模块来调用时,单纯的函数指针不够用。