[小丁笔记] map
map 用法
map的作用就是存储键值对 (key,value)
要求key是唯一的
头文件
<map>
声明
map<T1,T2> m;
插入
pair<T1,T2> p(k,v);
m.insert(p);
m[k] = v
insert会查重,若key已存在则无效
数组方式不会查重,会直接覆盖
访问和赋值
m[k] = v
iter=m.find(k);
//如果不存在的话 iter==m.end()
//只能查 key 不能查value!
iter->second = v
遍历
typedef map<T1,T2>::iterator ITER;
for(ITER iter=m.begin();iter!=m.end();iter++){
iter->first;
iter->second;
}
删除
m.erase(iter);
m.erase(k);
时间复杂度
增删查都是 \(O(logn)\)
基本函数一览
begin() | 返回指向map头部的迭代器 |
clear() | 删除所有元素 |
count() | 返回指定元素出现的次数 |
empty() | 如果map为空则返回true |
end() | 返回指向map末尾的迭代器 |
equal_range() | 返回特殊条目的迭代器对 |
erase() | 删除一个元素 |
find() | 查找一个元素 |
get_allocator() | 返回map的配置器 |
insert() | 插入元素 |
key_comp() | 返回比较元素key的函数 |
lower_bound() | 返回键值>=给定元素的第一个位置 |
max_size() | 返回可以容纳的最大元素个数 |
rbegin() | 返回一个指向map尾部的逆向迭代器 |
rend() | 返回一个指向map头部的逆向迭代器 |
size() | 返回map中元素的个数 |
swap() | 交换两个map |
upper_bound() | 返回键值>给定元素的第一个位置 |
value_comp() | 返回比较元素value的函数 |