->
map
map中每个元素都是pair
pair第一个元素为key(键值),起索引作用,第二个元素为value(实值)
所有元素会根据元素的键值自动排序
本质:
map/multimap属于关联式容器,底层结构是二叉树
优点:
可以根据键值key快速找到value值
map和multimap区别:
map不允许容器中有重复key的元素,insert插重复key的不会覆盖
multimap允许
构造:
map<T1,T2> mp; 默认构造
map(const map & mp); 拷贝构造
赋值:
map & operator=(const map &mp);
->
map大小和交换操作
函数原型:
size(); 返回元素个数
empty(); 判空
swap(st); 交换
map插入和删除
函数原型:
insert(elem);
几种insert方式:
map<int, int> m;
m.insert(pair<int, int>(1, 10));
m.insert(make_pair(2, 20));
m.insert(map<int, int>::value_type(3, 30));
m[4]=40; 不建议用这种方式插入,因为当这个key不存在的时候,会自动创建出来
中括号可以用来: 通过key访问value m[key] 返回对应的value
clear();
erase(pos); 删除迭代器位置的元素,返回下一个元素的迭代器
erase(beg,end); 删除区间[beg,end)的所有元素,返回下一个元素的迭代器
erase(key); 删除容器中值为key的元素,只会按照key,如果没有不会改变
->
map查找和统计
函数原型:
find(key); 查找key是否存在,返回该键的元素迭代器;若不存在,返回end()
count(key); 统计key元素的个数,结果为 0或者 1
->
map排序,默认是按照key从小到大
技术:
仿函数
和set一样,创建一个自定义的排序类,重载()
C++ Study Notes 10
最新推荐文章于 2024-10-16 10:13:45 发布