标签:
容器,正如其字面意思,是存储了一组对象的数据集合(这里的每个对象都是这个容器的元素),当然了这里的容器本身也是一个对象。所有的容器都被设计成为模板类,这样一来容器可存储的元素类型就具有非常大的灵活性。
容器负责管理自身用以存储元素的物理空间,并且提供了成员函数来访问这些元素 -- 有直接访问的方式也有通过迭代器(具有类似指针的属性)访问的方式。
容器实现了程序设计中非常常见的结构:动态数组(vector),队列(queue),栈(stack),堆(priority_queue),链表(list),树(set),关联数组(map)...
许多不同的容器具有相同的成员函数,并且共享一些功能。在决定使用哪一种具体的容器时,不仅仅需要考虑到容器提供的功能,同时也要考虑到访问其成员的效率(复杂度)。尤其是对于序列容器,这些容器在插入/删除元素与访问元素的复杂度之间有着不同的权衡。
stack, queue以及priority_queue被实现为容器适配器。容器适配器并不是完整的容器,而是一个提供了某些特定接口的类,容器适配器将一个容器封装起来,然后就可以通过容器适配器提供的这些接口来访问这个容器的元素。
序列容器
array (c++11 only) | 数组类 (模板类) |
vector | 动态数组 (模板类) |
deque | 双端队列 (模板类) |
forward_list | 单链表 (模板类) |
list (c++11 only) | 链表 (模板类) |
容器适配器
stack | 先入后出栈 (模板类) |
queue | 先入先出队列 (模板类) |
priority_queue | 优先队列 (模板类) |
关联容器
set | 集合 (模板类) |
multiset | 多重集合 (模板类) |
map | 映射 (模板类) |
multimap | 多重影射 (模板类) |
无序关联容器
unordered_set | 无序集合 (模板类) |
unordered_multiset | 无序多重集合 (模板类) |
unordered_map | 无序映射 (模板类) |
unordered_multimap | 无序多重映射 (模板类) |
关联容器
标签:
原文地址:http://www.cnblogs.com/barney-li/p/4186681.html