C++容器的概述

C++容器的概述

前言概述

标准库中的容器是泛型数据结构,特别适合保存数据集合。使用标准库时,几乎不需要使用标准的C风格数组、编写链表或者设计栈。容器实现为类模。除array、bitset外,大部分标准库容器大小灵活多变,都能自动生长或者收缩,以容纳更多的或者更少的元素。和固定大小的C风格数组相比,有着巨大的优势。由于本质的标准C风格数组的大小是固定的,因此容易受到溢出的破坏。如果数据溢出,轻则导致程序崩溃,重则导致某些类型的安全受到攻击。使用标准库容器,程序遇到这种问题的可能性就会小的很多。

标准库提供了16个容器,分为4大类:

  1. 顺序容器:vector、deque、list、forward_list、array。
  2. 关联容器:map、multimap、set、multiset。
  3. 无序关联容器或哈希表:unordered_map、unordered_multimap、unordered_set、unordered_multiset。
  4. 容器适配器:queue、priority_queue、stack。

此外,C++的 string和流也可以在某种程度上用作标准容器。bitset可以用于存储固定数目的位。标准库的所有内容都在std名称空间中。

对元素要求

标准库容器对元素使用值语义。也就是说,在输入元素的时候保存元素的的一份副本,通过赋值运算符给元素赋值,通过析构函数销毁元素。因此,编写用于标准库的类时,一定要保证他们是可以复制的,请求容器中的元素时,会返回所存在的副本的引用。

你可能感兴趣的:(c++,c++,开发语言)