标准库中的容器主要分为三类:顺序容器、关联容器、容器适配器。
顺序容器包括五种类型:
array<T, N>数组:固定大小数组,支持快速随机访问,但不能插入或删除元素;
vector<T>动态数组:支持快速随机访问,尾位插入和删除的速度很快;
deque<T>双向队列:支持快速随机访问,首尾位置插入和删除的速度很快;(可以看作是vector的增强版,与vector相比,可以快速地在
首位插入和删除元素)
list<T>双向链表:只支持双向顺序访问,任何位置插入和删除的速度都很快;
forward_list<T>单向链表:只支持单向顺序访问,任何位置插入和删除的速度都很快。
关联容器包含两种类型:
map容器:
map<K, T>关联数组:用于保存关键字-值对;
multimap<K, T>:关键字可重复出现的map;
unordered_map<K, T>:用哈希函数组织的map;
unordered_multimap<K, T>:关键词可重复出现的unordered_map;
set容器:
set<T>:只保存关键字;
multiset<T>:关键字可重复出现的set;
unordered_set<T>:用哈希函数组织的set;
unordered_multiset<T>:关键词可重复出现的unordered_set;
容器适配器包含三种类型: stack栈、queue队列、priority_queue优先队列。
标准库中的容器主要分为三类:顺序容器、关联容器、容器适配器。
顺序容器包括五种类型:
array<T, N>数组:固定大小数组,支持快速随机访问,但不能插入或删除元素;
vector<T>动态数组:支持快速随机访问,尾位插入和删除的速度很快;
deque<T>双向队列:支持快速随机访问,首尾位置插入和删除的速度很快;(可以看作是vector的增强版,与vector相比,可以快速地在
首位插入和删除元素)
list<T>双向链表:只支持双向顺序访问,任何位置插入和删除的速度都很快;
forward_list<T>单向链表:只支持单向顺序访问,任何位置插入和删除的速度都很快。
关联容器包含两种类型:
map容器:
map<K, T>关联数组:用于保存关键字-值对;
multimap<K, T>:关键字可重复出现的map;
unordered_map<K, T>:用哈希函数组织的map;
unordered_multimap<K, T>:关键词可重复出现的unordered_map;
set容器:
set<T>:只保存关键字;
multiset<T>:关键字可重复出现的set;
unordered_set<T>:用哈希函数组织的set;
unordered_multiset<T>:关键词可重复出现的unordered_set;
容器适配器包含三种类型: stack栈、queue队列、priority_queue优先队列。