map提供一对一的哈希,比如map<string,int>就建立了一个字符串和一个数字之间的对应,其中每一个关键字都会在其中仅仅出现一次。
第一个关键字叫做key,只出现一次。
第二个关键字叫做value,由key指向对应。
注意,map在实际上是有着自动排序的功能的。
1.map的构造。
map<string,int>name;
2.map的插入。
如果构建了一个形如同map<string,int>name这样的一个map的话。
我们可以name["hhh"]=123;
这样hhh就对应了123
如果hhh已经对应了123,我们继续执行name["hhh"]=12
那么前面的值就会被覆盖。
3.map的查找。
map的查找主要通过一个find函数,
当所查找的关键key出现时,它返回数据所在对象的位置,如果沒有,返回iter与end函数的值相同。
iter=map.find(hhh)
if(iter!=map.end)
cout<<"在这个Map中有这个元素我们可以输出他们<<iter->second<<"\n;
4.map的删除与清空操作。
//迭代器刪除
iter = mapStudent.find("123");
mapStudent.erase(iter);
//用关键字刪除
int n = mapStudent.erase("123"); //如果刪除了會返回1,否則返回0
//用迭代器范围刪除 : 把整个map清空
mapStudent.erase(mapStudent.begin(), mapStudent.end());
//等同于mapStudent.clear()
//本段借鉴了https://blog.csdn.net/sevenjoin/article/details/81943864?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169076291816782425110130%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169076291816782425110130&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-81943864-null-null.142^v91^insert_down28v1,239^v12^insert_chatgpt&utm_term=map&spm=1018.2226.3001.4187
5.map的大小
name.size();
6.map的其他函数
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数, ( 因为key值不会重复,所以只能是1 or 0)
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
erase() 删除一个元素
find() 查找一个元素
insert() 插入元素
lower_bound() 返回键值>=给定元素的第一个位置
size() 返回map中元素的个数
swap() 交换两个map
upper_bound() 返回键值>给定元素的第一个位置