STL
文章平均质量分 63
「已注销」
这个作者很懒,什么都没留下…
展开
-
STL中关于map和set的一些问题
1,STL封装了许多复杂的数据结构算法和大量常用数据结构操作,如vector封装数组,list封装了链表,map和set封装了二叉树等,另外STL采用自己的Allocator分配内存,以内存池的方式来管理这些内存,大大减少内存碎片的产生,从而提升系统的整体性能 2, STL中标准关联容器set,multiset, map, multimap内部采用的是一种非常高效的平衡检索二叉树:红黑树,原创 2015-10-20 10:09:24 · 1121 阅读 · 0 评论 -
Effective STL 第一章:容器(三)
第4条:调用empty而不是检查size()是否为0 1,对于任一容器,empty和size()是否为0本质上是等价的,尤其是empty通常被实现为内联函数,并且它所做的仅仅是返回size是否为02,但应该使用empty形式,理由很简单,empty对所有的标准容器都是常数时间操作,而对一些list实现,size耗费线性时间(list所独有的链接(splice)操作其不同的实现可能会导致原创 2016-02-17 10:36:17 · 409 阅读 · 0 评论 -
Effective STL 第一章:容器(一)
一,本章主要内容1,如何就面临的具体制约条件选择适当的容器类型2,避免一种错误认识:即为一种类型的容器而编写的代码换了其他容器也能工作3,对于容器中的对象,拷贝操作的重要性4,当指针或者auto_ptr被存放在容器中时会有什么样的困难5,删除操作的细节6,用定制的分配子能做什么以及不能做什么7,使程序获得最高效率的窍门8,在多线程环境中使用容器时的一些考虑原创 2015-10-28 10:28:00 · 557 阅读 · 0 评论 -
Effective STL 第一章:容器(二)
第3条:确保容器中的对象拷贝正确而高效 1,copy in,copy out是stl的工作方式,即向容器中加入对象时,存入容器的是你指定对象的拷贝,从容器中取出对象时,得到的是容器中所保存的对象的拷贝。2,拷贝对象时STL的工作方式,当对vector,string或deque进行元素的插入或删除操作时,现有元素位置通常会被移动(拷贝)(见第5,14条),如果使用排序算法(见第31条)如原创 2016-02-17 10:14:25 · 470 阅读 · 0 评论 -
Effective STL 第一章:容器(四)
第5条:区间成员函数优先于与之对应的单元素成员函数1,区间成员函数是指使用两个迭代器参数来确定该成员操作所执行的区间的这类函数如:vector的insert方法:v1.insert(v1.end(), v2.begin(), v2.end()); 2,相比于单元素成员函数,使用区间成员函数的好处2.1,可以少写一点代码(如上面的插入操作,若使用单元素成员函数就得写一个显示的fo原创 2016-03-09 17:58:37 · 530 阅读 · 0 评论