一.multimap的基本用法:
成员函数 | 变量 |
---|---|
iterator find( const Key & val); | 在容器中查找关键字等于 val 的元素,返回其迭代器;如果找不到,返回 end() |
iterator insert (pair <Key, T> const &p); | 将 pair 对象 p 插入容器中并返回其迭代器 |
void insert(iterator first, iterator last); | 将区间 [first, last) 插入容器 |
int count( const Key & val); | 统计有多少个元素的关键字和 val 相等 |
iterator lower_bound( const Key & val); | 查找一个最大的位置 it,使得 [begin( ), it) 中所有的元素的关键字都比 val 小 |
iterator upper_bound(const Key & val); | 查找一个最小的位置 it,使得 [it, end()) 中所有的元素的关键字都比 val 大 |
pair < iterator, iterator > equal_range (const Key & val); | 同时求得 lower_bound 和 upper_bound |
iterator erase(iterator it); | 删除 it 指向的元素,返回其后面的元素的迭代器(Visual Studio 2010 中如此,但是在 C++ 标准和 Dev C++ 中,返回值不是这样) |
iterator erase(iterator first, iterator last); | 删除区间 [first, last),返回 last(Visual Studio 2010 中如此,但是在 C++ 标准和 Dev C++ 中,返回值不是这样) |
注意:multimap 及 map 中的 find 和 count 不用==运算符比较两个关键字是否相等。如果x比y小和y比x小同时为假,就认为 x 和 y 相等。
二.map的基本用法:
注意:map 和 multimap 十分类似,区别在于 map 容器中元素的关键字不能重复。multimap 有的成员函数,map 都有。map还独有如下表所示。
成员函数 | 变量 |
---|---|
T & operator[] (Key k); | 该成员函数返回 first 值为 k 的元素的 second 部分的引用。如果容器中没有元素的 first 值等于 k,则自动添加一个 first 值为 k 的元素。如果该元素的 second 成员变量是一个对象,则用无参构造函数对其初始化。 |