C++标准库 - STL容器概述

容器分类:

容器总体上可分为3种:序列式容器、关联式容器、无序容器。

1、序列式容器 sequence containers:

Array,C++11,就是对数组的包装,大小固定;

                                             C++标准库 - STL容器概述_第1张图片

Vector,内存不够可以在后边自动增长;

                                                        

Deque,双向队列,两端可进可出,双向都可动态扩容,queue和stack都是Deque的适配器,技术上都是Deque,不提供Iterator。queue允许在一端插入,另一端删除,stack允许在一端插入和删除。

                                          

List:双向链表;

                             

Forward-List(C++11),单向链表

                             

2、关联式容器 associative containers:

采用key-value结构,有序,适合用于快速查找。

       set/multiset,底层红黑树做的,set的key和vaule是一个,multi表示元素可以重复:

                                                  C++标准库 - STL容器概述_第2张图片

       map/multimap,底层红黑树做的,map的每个节点有key和vaule,multi表示key可以重复

                                               C++标准库 - STL容器概述_第3张图片

3、无序容器 unordered containers:

C++11新出的容器,使用HashTable做的,HashTable是数组+链表的组合

       Unordered set/multiet:

                                                             C++标准库 - STL容器概述_第4张图片

       Unordered map/multimap

                                                             C++标准库 - STL容器概述_第5张图片

 

你可能感兴趣的:(C++标准库)