C++课堂笔记整理(STL) map1

#include <iostream>
using namespace std;
#include "map"
#include "string"

//map元素的添加、遍历、删除基本操作

void main1101()
{
	map<int, string> map1;

	//方法1
	map1.insert(pair<int,string>(1,"teacher01"));
	map1.insert(pair<int,string>(2,"teacher02"));

	//方法2
	map1.insert(make_pair(3,"teacher04"));
	map1.insert(make_pair(4,"teacher05"));

	//方法3
	map1.insert(map<int,string>::value_type(5,"teacher05"));
	map1.insert(map<int, string>::value_type(6, "teacher06"));

	//方法4
	map1[7] = "teacher07";
	map1[8] = "teacher08";


	//容器的遍历
	for (map<int, string>::iterator it = map1.begin(); it != map1.end(); it++)
	{
		cout << it->first << "\t" << it->second << endl;
	}
	cout << "遍历结束" << endl;

	while (!map1.empty())
	{
		map<int, string>::iterator it = map1.begin();
		cout << it->first << "\t" << it->second << endl;
		map1.erase(it);
	}

}


//插入的四种方法  异同
//前三种方法  返回值为pair<iterator,bool>  若key已经存在,则报错
//第四种方法  若key已经存在,则覆盖
void main1102()
{
	map<int, string> map1;

	//typedef pair<iterator,bool> _Pairb;

	//方法1
	pair<map<int,string>::iterator,bool> mypair1= map1.insert(pair<int, string>(1, "teacher01"));
	map1.insert(pair<int, string>(2, "teacher02"));

	//方法2
	pair<map<int, string>::iterator, bool> mypair2 = map1.insert(make_pair(3, "teacher04")); 
	map1.insert(make_pair(4, "teacher05"));
	

	//方法3
	pair<map<int, string>::iterator, bool> mypair5 = map1.insert(map<int, string>::value_type(5, "teacher05"));
	if (mypair5.second != true)
	{
		cout << "key 5 插入失败" << endl;
	}
	else
	{
		cout << mypair5.first->first << "\t"<<mypair5.first->second << endl;
	}
	pair<map<int, string>::iterator, bool> mypair6 = map1.insert(map<int, string>::value_type(5, "teacher55"));
	if (mypair6.second != true)
	{
		cout << "key6 插入失败" << endl;
	}
	else
	{
		cout << mypair6.first->first << "\t" << mypair6.first->second << endl;
	}

	//方法4
	map1[7] = "teacher07";
	map1[7] = "teacher08";


	//容器的遍历
	for (map<int, string>::iterator it = map1.begin(); it != map1.end(); it++)
	{
		cout << it->first << "\t" << it->second << endl;
	}
	cout << "遍历结束" << endl;

	while (!map1.empty())
	{
		map<int, string>::iterator it = map1.begin();
		cout << it->first << "\t" << it->second << endl;
		map1.erase(it);
	}

}

void main()
{
	//main1101();
	main1102();
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值