映射容器 map 简介(一)

map用来存储由关键字和它们的值构成的一些有序项的集合。

关键字必须是唯一的,但多个关键字可能映射到一些相同的值。这样,值可不比唯一。map中的关键字保持逻辑上的有序状态。

map支持begin、end、size、和empty,但其基础迭代器是一个关键字-值对。换句话说,对于iteratoritr,*itr为pair<KeyType,ValueType>类型。map还支持insert、find和erase。对于insert,我们必须提供一个pair<KeyType,ValueType>对象。虽然find只要求一个关键字,但是它返回的iterator却引用一个pair。只使用这些操作常常是不划算的,因为语法代价可能会很高昂。

所幸的是,map有一个重要的附加操作,这个操作会带来简单的语法。对map来说,其数组索引运算符重载如下:

ValueType & operator[] (const KeyType & key);

operator[ ] 语义如下。如果在map中出现key,那么对应值得引用就被返回。如果在map中key不出现,那么它就和一个默认值一起被插入到map中,然后返回所插入的默认值的引用。这个默认值通过应用零参数构造函数获得,对于一些基本类型它的值为零。语法不允许访问函数版本的operator[ ],因此operator[ ]不能用在常量的map上。例如,如果一个map通过常量引用传递,那么在例程内部operator[ ]是不可用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值