STL map

map内部是使用红黑树实现的(set也是),在建立映射的过程中会自动实现从小到大的排序功能

#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
int main(){
	map<char,int> mp;
	mp['c']=10;
	mp['c']=9;//20被覆盖 
	mp['m']=20;
	mp['r']=30;
	mp['a']=40;
	mp['b']=70;
	mp['d']=60;
	mp['e']=50;
	//通过下标访问 mp中的键是唯一的 
	printf("mp['c']:%d\n",mp['c']);
	//通过迭代器访问 
	//it->first访问键,it->second访问值
	printf("原始数据:\n");
	for(map<char,int>::iterator it=mp.begin();it !=mp.end(); it++){
		printf("%c %d\n",it->first,it->second);
	}//map会以键从小到大的顺序自动排序
	//如果是字符串到整型的映射,必须使用string而不能用char数组
	//map<string,int> mp;
	//find(key)返回键为key的映射的迭代器
	map<char,int>::iterator it=mp.find('m');
	printf("mp.find('m'):%c %d\n",it->first,it->second);
	//erase 单个 区间
	mp.erase('a');
	printf("erase('a')后的数据:\n");
	for(map<char,int>::iterator it=mp.begin();it !=mp.end(); it++){
		printf("%c %d\n",it->first,it->second);
	} 
	mp.erase(it,mp.end());
	printf("erase(it,mp.end())(m)后的数据:\n");
	for(map<char,int>::iterator it=mp.begin();it !=mp.end(); it++){
		printf("%c %d\n",it->first,it->second);
	} 
	printf("map中的映射对数%d\n",mp.size());//map中的映射个数 
	mp.clear();
	printf("clear的映射对数%d\n",mp.size());
	return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clark-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值