【C++】 map的基础知识

1.定义

map是一个容器,容器中存在两个值,key和value。
key只能出现一次,而value可以重复。

2.性质

  • 关联性:关联容器中的元素的参考地址指的是其 Key 值,而不是他们在容器中的绝对地址;

  • 有序性:容器中的元素一直按照排序方式严格排序,所有插入元素都按照该顺序排列;

  • 映射:每个元素中,一个 Key 值与一个映射值相关。Key 值是用来标识其主要内容是映射值的元素;

  • 唯一 Key 值:容器中不存在同时拥有相同 Key 值的两个元素;

  • 分配感知 (Allocator-aware):map 容器使用分配器对象动态处理其存储需求。

2.基本操作

(1)声明

	map<int,string>m1;//直接
	m1[1]="hello";
	m1[2]=" ";
	m1[3]="world";
	m1[4]="!";
	
	map<int,string>m2(m1);//复制
	
	map<int,string>m3(m1.begin(),m1.end());//利用指针

(2)插入

	map<int,string>m1;
	m1[1]="hello";
	m1[2]=" ";
	m1[3]="world";
	m1[4]="!";
	
	//insert
	m1.insert(pair<int,string>(8,"over"));//pair
	m1.insert(map<int,string>::value_type(0,"zero"));//map
	m1.insert(make_pair<int,string>(8,"good")); //make_pair

	//数组用法
	m1[5]="game";

(3)修改

	//数组
 	int i =m1["a"]; 
    m1["a"]=i; 

	//迭代器
 	map<int,string>::iterator it; 
    it.find("b"); 
    int j=it->second; 
    it->second=j; 

(4)删除

	map<int,string>m1;
	m1[1]="hello";
	m1[2]=" ";
	m1[3]="world";
	m1[4]="!";
	m1[7]="make";
	
	map<int,string>::iterator it;//利用迭代器
	it=m1.find(4);
	m1.erase(it);
	
	m1.erase(m1.begin(),m1.end());//erase
	m1.clear();//清空

(5)遍历

	map<int,string>::iterator it;
	it = m1.begin();
	for (it; it != m1.end(); it++)
    {
        //用 first 访问std::pair的第一个成员(Type1),second 访问第二个成员 (Type2)
        cout<<it->first<<":"<<it->second<<endl;
    }

(6)其他

	my_Map.size()     //返回元素数目 
	my_Map.empty()    //判断是否为空 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值