一种数据结构,如list,vector,和deques ,以模板类的方法提供。为了访问容器中的数据,可使用由容器类输出的迭代器;算法
提供了访问容器中对象的方法。例如,可使用一对迭代器指定list或vector中的必定范围的对象。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。可是,迭代器也能够是那些定义了operator*()以及其余相似于指针的操做符地方法的类对象;数组
是用来操做容器中的数据的模板函数。例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象,函数自己与他们操做的数据的结构和类型无关,所以他们能够在从简单数组到高度复杂容器的任何数据结构上使用;数据结构
底层数据结构为数组 ,支持快速随机访问函数
vector是咱们用到最多的数据结构,其底层数据结构是数组,操作系统
当咱们新建一个vector的时候,会首先分配给他一片连续的内存空间,当经过push_back向其中增长元素时,若是初始分配空间已满,就会引发vector扩容,其扩容规则在gcc下以2倍方式完成:首先从新申请一个2倍大的内存空间;而后将原空间的内容拷贝过来;最后将原空间内容进行释放,将内存交还给操做系统;指针
底层数据结构为双向链表,支持快速增删对象
底层数据结构为一个中央控制器和多个缓冲区排序
底层通常用list或deque实现,封闭头部便可,不用vector的缘由应该是容量大小有限制,扩容耗时内存
底层通常用list或deque实现,封闭头部便可,不用vector的缘由应该是容量大小有限制,扩容耗时(stack和queue实际上是适配器,而不叫容器,由于是对容器的再封装)it
底层数据结构通常为vector为底层容器,堆heap为处理规则来管理底层容器实现
底层数据结构为红黑树,有序,不重复
底层数据结构为红黑树,有序,可重复
底层数据结构为红黑树,有序,不重复