关于map的一些用法(搬运自https://www.w3cschool.cn/cpp/cpp-fu8l2ppt.html)
Posted on 2021-09-11 09:40 串串吃到饱 阅读(280) 评论(0) 收藏 举报关于map的一些用法
一.Map的使用
- 头文件 #include<map>
- Map是一个模板类,需要存储关键字和存储对象两个模板参数
Std::map<int , std::string>person;<我们在写的时候std可以去掉>
- 可以对模板进行一些定义使其使用方便
Typedef std::map<int ,std::string>map_int_string;
之后的定义我们就可以进行快捷定义:
map_int_string k;
二.Map的构造
- map最基本的构造参数std::map<int ,std::string> person;
- map添加数据
(1)用inset函数插入value_pair数据
例如:person.insert(std::map<int , std::string>::value_type(2,"tom"));//person是map类型变量
(2)inset函数插入pair数据
例如:std::map<int , std::string>map_person;
map_person.insert(pair<int ,string>(1,"jack"));
(3)用数组方式插入数据
mapperson[3]="jerry"; - map数据的遍历
三种最常用的遍历方法
(1)前向迭代器
std::map<int ,std::string>::iterator it;
std::map<int ,std::string>::iterator it;
it=map_person.begin();
itend=mapperson.end();
while(it!=itend){
cout<<it->first<<" "<<it->second<<"\n";
it++;
}
(2)反向迭代器
std::map<int,string>::reverse_iterator it;
for(it=map_person.rbegin;it!=map_person.rend();it++)//反向迭代器,所以这个地方我们可以直接it++
//cout<<
(3)数组形式
mapperson.insert(std::map<int ,std::string>::value_type(1,"tom"));
mapperson[2]="jim";
mapperson[3]="jerry"
int nsize = mapperson.size();
for(int n=1;n<=nsize;n++);
qdebug()<<qstring::fromStdString(mapPerson[n]);// - map中元素查找
find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回map尾部的迭代器
map<int ,std::string>::iterator it;
it=mapperson.find(122)
if(it==mapperson.end()){
cout<<"we do..."
}
else cout<<"" - map中元素的删除
例如我们删除122
iterator erase(iterator it);//通过一个条目对象进行删除
iterator erase(iterator first,iterator last);//删除一个范围
size_type erase(const key&key);//通过关键删除
clear();//删除全部 - map中的swap的用法
map的swap的用法是容器之间的交换而不是容器中元素的交换
例:
map<int,int>m1,m2,m3;
m1.insert(pair<int , int>(1,10));
m2.insert(pair<int ,int>(10,100));
m3.insert(pair<int ,int>(100,1000));
m1.swap(m2)//这句话执行之后m1就变成了m2,m2就变成了m1 - map的sort问题
map中的元素是按照key中的元素升序排序,所以不能对map使用sort函数 - map的基本操作函数
c++maps是一种关联式容器,包含关键字/值 对
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的函数
浙公网安备 33010602011771号