C++容器的概述

C++标准库中的容器提供了一种安全且灵活的方式来存储和管理数据集合,避免了C风格数组可能的溢出问题。容器包括顺序容器如vector、deque和list,关联容器如map和set,以及无序关联容器如unordered_map。所有容器都支持值语义,元素在插入时会被复制并管理。编写用于这些容器的类需要确保它们是可复制的。
摘要由CSDN通过智能技术生成

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名称空间中。

对元素要求

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值