map
- map<key, value, compare>
- map<int, string, less[int]> key的类型为int, value的类型为string,less[int]为按key的值从小到大排列
- mp[key]
- 如果key不存在则使用默认value与key构造键值对并插入
- 如果key存在,则返回key对应的value值
- map.insert(make_pair( , ));
- map(make_pair(“abc”, 1);
- map(make_pair(“abc”, 2);
- 如果插入的key值相同,则值插入第一个
map<char, int> mp;
mp.insert(make_pair('a', 10));
mp.insert(make_pair('a', 20));
mp.insert(make_pair('a', 30));
//值插入了'a' 10
- map.first 返回key值 map.second 返回value值
- map.find(key);在map中插入key为x的元素,找到返回该元素的位
置的迭代器,否则返回end
map.count(key) : 返回key为x的键值在map中的个数,返回 1 或 0
multimap
- 可以插入相同key值的元素
- 与map的接口基本一致
- 没有[]操作
- ret = equal_range(key) : ret.first 第一个key的位置, ret.second 最后一个key的下一个位置
- ret 的类型为pair(multimap<T, T>::iterator,multimap<T, T>::iterator)
set
- 无[]操作
- 有序排列
- 在底层存放的是由<value, value>构成的键值对
- find(x) : 返回set中值为x的元素的位置
- count(x) : 返回值为x的元素的个数
- set可以去重
multiset
- 存放相同key的元素
- 与set接口基本一致
unordered_map/_set
unordered_multimap/_multiset
- 元素无序排列
红黑树容器 有序 O(LogN)
map
multimap
set
multiset
哈希表容器 无序 O(1)
unordered_map
unordered_multimap
unordered_set
unordered_multiset
对应容器的接口基本一致