有key值和value值,不允许有相同的key值
multimap的key值可以重复
map和multimap底层都是红黑树
构造
方法 | 描述 |
---|---|
map<T1, T2> mapTT; | map默认构造函数: |
map(const map &mp); | 拷贝构造函数 |
API
方法 | 描述 |
---|---|
[key] | 查找元素 |
map& operator=(const map &mp); | 重载等号操作符 |
swap(mp); | 压缩容量 |
size(); | 元素个数 |
empty(); | 是否为空 |
map.insert(…); | 往容器插入元素,返回pair<iterator,bool> |
map<int, string> mapStu; | 第一种 通过pair的方式 |
mapStu.insert(pair<int, string>); | 第二种 通过pair的方式 |
mapStu.inset(make_pair(-1, “校长”)); | 第三种 通过value_type的方式 |
mapStu.insert(map<int, string>::value_type); | 第四种 通过数组的方式插入值 |
clear(); | 删除所有元素 |
erase(pos); | 删除pos迭代器所指的元素,返回下一个元素的迭代器。 |
erase(beg,end); | 删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。 |
erase(keyElem); | 删除容器中key为keyElem的对组。 |
find(key); | 查找键key是否存在,若存在,返回该键的元素的迭代器;/若不存在,返回map.end(); |
count(keyElem); | 返回容器中key为keyElem的对组个数。对map来说,要么是0,要么是1。对multimap来说,值可能大于1。 |
lower_bound(keyElem); | 返回第一个key>=keyElem元素的迭代器。 |
upper_bound(keyElem); | 返回第一个key>keyElem元素的迭代器。 |
equal_range(keyElem); | 返回容器中key与keyElem相等的上下限的两个迭代器。 |