标准库中有哪些容器?分别有什么特点?

标准库中的容器主要分为三类:顺序容器、关联容器、容器适配器。

  • 顺序容器包括五种类型:
    • 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<T>栈、queue<T>队列、priority_queue<T>优先队列。

发表评论

后才能评论