第十章 关联容器

1.关联容器:

    1.支持通过键来高效地查找和读取元素。

    2.两个基本的关联容器类型是 map set。

2.pair 类型:

    1.pair<T1, T2> p1; 创建一个空的 pair 对象,它的两个元素分别是 T1 和 T2类型。

    2.pair<T1, T2> p1(v1, v2); 创建一个 pair 对象,它的两个元素分别是 T1 和 T2 ,其中 first 成员初始化为 v1,而 second 成员初始化为 v2。

    3.make_pair(v1, v2); 以 v1 和 v2 值创建一个新 pair 对象,其元素类型分别是v1 和 v2 的类型。

    4.p1 < p2; 两个 pair 对象之间的小于运算,其定义遵循字典次序:如果 p1.first < p2.first 或者 !(p2.first < p1.first) &&p1.second < p2.second,则返回 true。

    5.p1 == p2;如果两个 pair 对象的 first 和 second 成员依次相等,则这两个对象相等。该运算使用其元素的 == 操作符。

    6.p.first 返回 p 中名为 first 的(公有)数据成员。

    7.p.second 返回 p 的名为 second 的(公有)数据成员。

3.关联容器不提供front、 push_front、 pop_front、back、push_back 以及 pop_back 操作。

4.map 的构造函数:

    1.map<k, v> m;

    2.map<k, v> m(m2); 

    3.map<k, v> m(b, e); 

5.键类型的约束:

    作为键的类型,必须提供逻辑运算<的操作。(严格弱排序)

6.map 类定义的类型:

    1.map<K, V>::key_type 在 map 容器中,用做索引的键的类型。

    2.map<K, V>::mapped_type 在 map 容器中,键所关联的值的类型。

    4.map<K, V>::value_type 一个 pair 类型,它的 first 元素具有 const map<K,V>::key_type 类型,而 second 元素则为 map<K,V>::mapped_type 类型。

7.在学习 map 的接口时,需谨记 value_type 是 pair 类型,它的值成员可以修改,但键成员不能修改。

8.不修改 map 对象的查询操作:

    1.m.count(k) 返回 m 中 k 的出现次数。

    2.m.find(k) 如果 m 容器中存在按 k 索引的元素,则返回指向该元素的迭代器。如果不存在,则返回超出末端迭代器

9.返回迭代器的关联容器操作:

    1.m.lower_bound(k) 返回的迭代器则指向最后一个实例的下一位置。

    2.m.upper_bound(k) 返回的迭代器则指向最后一个实例的下一位置。

    3.m.equal_range(k) 返回一个迭代器的 pair 对象它的 first 成员等价于 m.lower_bound(k)。而 second 成员则等价于 m.upper_bound(k).



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值