C++容器map和set使用

map

map是一种关联式容器,map的作用是将key和value一一对应的绑定在一起。用一个结构体pair将他们组合。

map的使用

map的三种插入模式

map<string, string> dist;
	// 插入方法1 显示构造

	pair<string, string> k = { "苹果","水果" };
	dist.insert(k);

	//插入方法2 匿名对象
	dist.insert(pair<string, string>{ "西瓜", "水果" });

	//插入方法3
	dist.insert(make_pair("南瓜", "水果"));

一个key只能对应一个value:
在这里插入图片描述
在这里插入图片描述

map的基本功能

map的基本功能就是统计次数。
先看插入函数:
在这里插入图片描述

string x[] = {"苹果", "苹果", "李子","苹果", "苹果" ,"李子","李子","李子","李子","西瓜"};
	map<string, int> coutMap;
	for (auto i : x)
	{
		cout << i << ' ';
	}
	cout << endl;

	pair< map < string, int >::iterator, bool> ret;
	map < string, int >::iterator ret2;
	for (auto i : x)
	{
		ret=coutMap.insert(make_pair(i, 1));
		if (ret.second == false)
		{
			ret2 = ret.first;
			ret2->second++;
		}
	}
	map<string, int>::iterator it =coutMap.begin();
	
	while (it != coutMap.end())
	{
		cout << (*it).first << ' ' << (*it).second << ' ';
		it++;
	}

每当插入失败,则说明计数器+1。

map的pair介绍

pair就是存放两个不同数据类型的结构体。pair就是一个模板
在这里插入图片描述

map的[ ]介绍

map的[ ]可以说专为计数而生。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
模拟实现这个[ ]
在这里插入图片描述
就是返回对应的value就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值