容器的种类和数据结构
2025年09月26日
3.容器的种类和数据结构
STL容器通常分为三种:序列式容器、关联性容器和容器配接器。
1)序列式容器(sequence容器)。此类容器中的元素是有序的,但未排序。包括vector(动态数组),deque(双向队列),list(双向串)。
2)关联性容器,容器中的元素都经过排序。包括set,multiset,map,multimap,和hash(散列)table。
3)容器配接器,是以某种STL容器作为底,修改其接口,具备各自的特点。包括stack(栈),queue(队列),priority_queue(优先队列)。
STL容器的数据结构也包括三种:string(字符串)、bitset(位)和valarray(数组)。
1)string字符串。这种数据结构中保存的是字符。string并不是真正的类,而是1个basic_string类的类型定义。其定义为:
2)bitset。这种数据结构中保存的是bits的结构体。每个bit表示1个标志(flag)。其长度固定。长度便是模板的自变量。详见例3-1。
例3-1
例3-1的执行效果如图3-1所示。
图3-1 例3-1的执行效果
图3-1中,第1行字符正好是十进制数7的二进制表现形式;第2行字符正好是字符串“1000101011”。
3)valarray。这种数据结构是数学中的线性数列概念的呈现。其优点为:如同处理单一数值,对整个valarray中的每个元素实现运算。详见例3-2。
例3-2
例3-2的执行效果如图3-2所示。
图3-2 例3-2的执行效果
提示
请读者注意例3-2中valarray类型对象的使用方法。