容器基本上可以分为两大类,序列式容器和关联式容器。
1. 序列式容器
所谓序列式容器,就是说容器中的元素都可序(Ordered),但未排序(Sorted)。
2. 关联式容器:
所谓关联式容器,观念上类似关联式数据库(实际上简单的多):每个元素都有一个键值(Key)和一个实值(Value)。当元素被插入到关联式容器中时,容器内部结构便依照其键值的大小,以某种特定规则将这个元素放置于特定的位置。关联式容器没有所谓的头尾,所以不会有push_back()、push_front()、pop_back()、pop_front()这样的操作。
关联式容器分为两大类:Map和Set以及他们的衍生容器MultiMap和MultiSet。他们的底层实现都是红黑树(RB-Tree),因为红黑树提供了很好的搜索效率。
1. 序列式容器
所谓序列式容器,就是说容器中的元素都可序(Ordered),但未排序(Sorted)。
序列式容器包括:Vector、List、Queue、Stack等。
说明:
(1)vector
声明之后里面没有元素,此时不能使用数组下标访问元素,调用push_back会申请内存并存储数据。
2. 关联式容器:
所谓关联式容器,观念上类似关联式数据库(实际上简单的多):每个元素都有一个键值(Key)和一个实值(Value)。当元素被插入到关联式容器中时,容器内部结构便依照其键值的大小,以某种特定规则将这个元素放置于特定的位置。关联式容器没有所谓的头尾,所以不会有push_back()、push_front()、pop_back()、pop_front()这样的操作。
关联式容器分为两大类:Map和Set以及他们的衍生容器MultiMap和MultiSet。他们的底层实现都是红黑树(RB-Tree),因为红黑树提供了很好的搜索效率。