首页 理论教育 容器种类和数据结构-大道至简:C++ STL精解

容器种类和数据结构-大道至简:C++ STL精解

时间:2023-10-25 理论教育 版权反馈
【摘要】:此类容器中的元素是有序的,但未排序。3)容器配接器,是以某种STL容器作为底,修改其接口,具备各自的特点。STL容器的数据结构也包括三种:string(字符串)、bitset(位)和valarray(数组)。这种数据结构中保存的是字符。string并不是真正的类,而是1个basic_string类的类型定义。长度便是模板的自变量。这种数据结构是数学中的线性数列概念的呈现。图3-2 例3-2的执行效果提示请读者注意例3-2中valarray类型对象的使用方法。

容器种类和数据结构-大道至简:C++ STL精解

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类的类型定义。其定义为:

978-7-111-51399-5-Chapter03-1.jpg

2)bitset。这种数据结构中保存的是bits的结构体。每个bit表示1个标志(flag)。其长度固定。长度便是模板的自变量。详见例3-1。

例3-1

978-7-111-51399-5-Chapter03-2.jpg

例3-1的执行效果如图3-1所示。

978-7-111-51399-5-Chapter03-3.jpg(www.xing528.com)

图3-1 例3-1的执行效果

图3-1中,第1行字符正好是十进制数7的二进制表现形式;第2行字符正好是字符串“1000101011”。

3)valarray。这种数据结构是数学中的线性数列概念的呈现。其优点为:如同处理单一数值,对整个valarray中的每个元素实现运算。详见例3-2。

例3-2

978-7-111-51399-5-Chapter03-4.jpg

例3-2的执行效果如图3-2所示。

978-7-111-51399-5-Chapter03-5.jpg

图3-2 例3-2的执行效果

提示

读者注意例3-2中valarray类型对象的使用方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈