map容器的查找和统计及multimap容器的查找和统计 c++ 简单易懂

#include<iostream>//c++中标准的输入和输出流
using namespace std;//引用标准的名空间std
#include<map>//引用map容器必须要包含map容器的头文件
void printmap(map<int, int>& m)//打印输出map容器内所有元素
{//for循环第一个参数是找到起始迭代器的位置
		//	//第二个参数是  for循环退出的条件,
		//	//d.end()指向的是终止迭代器的下一个位置,
		//那么退出的条件该迭代器已经到了终止迭代器的位置了
	for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
	{
		cout << (*it).first <<"\t"<< (*it).second << endl;
	}
	cout << endl;//在容器所有的元素都打印完之后,打印一个换行
}
void test01()
{
	map<int, int>m;
	m.insert(make_pair(10, 20));
	m.insert(make_pair(30, 20));
	m.insert(make_pair(20, 20));
	m.insert(make_pair(400, 900));
	//注意查找返回的时一个迭代器
    //但是统计返回的是一个整型的数
	printmap(m);
	map<int, int>:: iterator pos = m.find(30);
	if (pos != m.end())
		//通过返回的迭代器的位置是否在结束迭代器的位置来判断是否找到该元素
		//如果返回的迭代器的位置已经到了终止迭代器的下一个位置,说明没有找到
	{
		cout << "找到了" << endl;
	}
	else
	{
		cout << "没有找到" << endl;
	}
	int num = m.count(10);//查找在map容器内键值为10的元素的个数
	//结果为只有一个:因为在map容器内是不允许有相同的键值的元素的,
	//重复的元素在插入时就不能成功的插入进去
	cout << "num=" << num << endl;//打印输出该个数
}
void test02()
{//对于multimap而言,可以有键值相同的元素
	multimap<int, int>m;
	m.insert(make_pair(201, 190));
	m.insert(make_pair(223, 120));
	m.insert(make_pair(23, 1340));
	m.insert(make_pair(211, 2390));
	m.insert(make_pair(211, 2390));
	m.insert(make_pair(211, 2390));//map容器在插入时必须是一个队组
	int num = m.count(211);//3个
	cout << "num=" << num << endl;
}
int main(void)
{
	test01();//map容器的查找和统计
	test02();//multimap容器的查找和统计
	system("pause");
	//system("pause")和system("pause")作用和效果一样,因为dos命令是不区分大小写的。
		//该语句是暂停的意思:等待用户信号;不然控制台程序会一闪即过,你来不及看到执行结果
	return 0;//程序正常运行返回一个0
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值