总第97篇
对于C++
填坑员来说,相信大家肯定使用过STL
,只是理解的深与浅罢了。最近在项目开发过程中,发现自己对STL
中的有些问题有了更深入的认识,或者说有些知识以前没有掌握,在接下来的几篇文章中,好好总结梳理一下,以便加深印象。
1.容器
容器是用于存放数据的类模板
,在使用容器时,即是将容器类模板进行实例化,对象的变量被插入容器中时,实际插入的是对象的一个复制品。
在STL
中许多算法(函数模板),在执行过程中会对容器中的元素进行比较,这种比较通常用<
运算符进行, 因此,被放入容器的对象所属的类最好重载==
和<
运算符,从而使两个对象的比较是有定义的。
容器分为顺序容器(vector
、dqueue
、list
)、关联容器(set
、multiset
、map
、multimap
) 和适配器(stack
、queue
、priority_queue
)。
- 顺序容器:是元素在容器中的位置与元素的值无关,即在容器中是不排序的。元素插入时指定什么位置,就位于什么位置;
- 关联容器:是按关键字从小到大排序的,并且用
<