![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Effective STL
xcm2yw
这个作者很懒,什么都没留下…
展开
-
《Effective STL》 01:慎重选择容器类型
vector是默认应使用的序列类型;当需要频繁地在序列中做插入和删除操作时,应该使用list;当大多数插入和删除操作发生在序列的头部和尾部时,deque是应考虑的数据结构。在STL的容器里面可以大致分为两类:连续内存容器和基于结点的容器。连续内存容器是指容器内存放的元素是在一块或多块内存中,每块内存存有多个元素。而基于结点的容器是像链表一样的容器,每一个小的内存中只存放一个元素。在进行删除...原创 2018-03-13 23:30:31 · 183 阅读 · 0 评论 -
《Effective STL》 03 确保容器中的对象拷贝正确而高效
当你通过insert或者push_back之类的操作将对象加入到容器中,事实上存进容器中的是你所指定的对象的拷贝。当通过front等操作后,取出来的对象也是所制定的对象的拷贝而已。存放进容器的对象越多耗费的时间就越多。同时还存在“剥离”的情况存在,例如:当创建一个存放基类对象的容器,却向容器中存放派生类的对象,那么在派生类对象被拷贝进容器中,那么特有的派生类的信息就会丢失掉。之所以会发生“...原创 2018-03-14 00:28:54 · 236 阅读 · 0 评论 -
《Effective STL》 05 区间成员函数优先于与之对应的单元素成员函数
讨论:给定v1和v2两个矢量(vector),使v1的内容和v2的后半部分相同的最简单操作如何实现? 方案1:v1.assign(v2.begin()+v2.size()/2,v2.end()); 方案2:v1.clear(); copy(v2.begin()+v2.size()/2,v1.end(),back_inserter(v1)); 方案3:使用循环将所需要插入的元素...原创 2018-03-14 16:38:55 · 187 阅读 · 0 评论