map/multimap

map/multimap容器#

1.map/multimap也是关联式容器,容器自身有规则,通过键值排序,map容器中的元素是对组,对组的第一个元素是键值,不能改变,第二个元素是实值,可以改变

2.数据结构:平衡二叉树

3.迭代器:双向迭代器

4.map容器和multimap容器的区别是multimap允许有相同的元素

5.常用的api:

​ 1.构造

map<T1, T2> mapTT;//map默认构造函数: 
map(const map &mp);//拷贝构造函数

​ 2.赋值

map& operator=(const map &mp);//重载等号操作符
swap(mp);//交换两个集合容器

​ 3.大小

size();//返回容器中元素的数目
empty();//判断容器是否为空

​ 4.查找

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相等的上下限的两个迭代器。

​ 5.插入

map.insert(...); //往容器插入元素,返回pair<iterator,bool>
map<int, string> mapStu;
// 第一种 通过pair的方式插入对象
mapStu.insert(pair<int, string>(3, "小张"));
// 第二种 通过pair的方式插入对象
mapStu.inset(make_pair(-1, "校长"));
// 第三种 通过value_type的方式插入对象
mapStu.insert(map<int, string>::value_type(1, "小李"));
// 第四种 通过数组的方式插入值
mapStu[3] = "小刘";  //3key  小刘是value
mapStu[5] = "小王";

​ 6.删除

clear();//删除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg,end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(keyElem);//删除容器中key为keyElem的对组。
posted @   江寒雨  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示
主题色彩