map用法
一,定义
(1)map<string, int> Map;
(2)或者是:typedef map<string,int> Mymap;
Mymap Map;
二,插入元素
关于pair和make_pair的用法
1.pair是一个结构体,有first和second两个域,可以直接访问
代码实现:
#include<iostream>
using namespace std;
int main()
{
string key="helloworld";
int value=314;
pair<string,int> b(key,value);//pair <string,int>是数据类型,后面是调带参构造方法
cout<<b.first<<' '<<b.second;
return 0;
}
2.而make_pair是返回一个 pair<类型,类型> 的数据,
make_pair("helloworld",314);
map插入元素用法
Map["abc"]=1;
Map.insert(pair<string,int>("c",3));
Map.insert(make_pair<string,int>("d",4));
三、修改、查找元素
(1)直接覆盖修改Map[“helloworld”]=111;
(2)查找数据:可以通过键来查。
Map.find(key); 返回迭代器的地址,key不存在的话迭代器的值为Map.end();
四、删除元素
(1)通过key删除;
(2)通过迭代器来删除;
#inlcude<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<map>
using namespace std;
int main()
{
map<string,int> Map;//声明一个map容器
map<string,int> ::iterator it;//声明一个迭代器
Map.insert(pair<string,int>("root",12));//插入pair类型内容
Map.insert(pair<string,int>("scot",11));
for(it=Map.begin();it!=Map.end();it++)
cout<<it->first<<" "<<it->second<<endl;
it=Map.begin();
Map.erase(it);//通过迭代器删除
string key="root";
Map.erese(key);//通过key删除
Map.erase(Map.begin(),Map.end());//一个迭代器,到另一个迭代器
//相当于 Map.clear();
for(it=Map.begin();it!=Map.end();it++)
cout<<it->first<<" "<<it->second<<endl;
return 0;
}
五、map常用方法
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对
erase() 删除一个元素
find() 查找一个元素
insert() 插入元素
max_size() 返回可以容纳的最大元素个数
size() 返回map中元素的个数
swap() 交换两个map
get_allocator() 返回map的配置器
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数TOC](这里写自定义目录标题)