栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

STL教程8-map

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

STL教程8-map

map

map相对于set区别,map具有键值和实值,所有元素根据键值自动排序。pair的第一元素被称为键值,第二元素被称为实值。map也是以红黑树为底层实现机制。

map四种插入方式
	map mymap;//声明map,第一个参数key类型,第二个参数value类型
	mymap.insert(pair(10, 10));//第一种插入方式
	mymap.insert(make_pair(20, 20));//第二种插入方式
	mymap.insert(map::value_type(30, 30));//第三种
	mymap[40] = 40;//第四种


	//打印
	for (map::iterator it = mymap.begin(); it != mymap.end(); it++)
	{
		//*it取出来的是pair
		cout << "key:" << (*it).first << "value:" << it->second << endl;
	}

注意上面第四种插入方式,如果没有插入访问,比如cout打印mymap[40],这时候也会插入,由于值类型是int,因此会插入0

添加自定义类型

这里添加一个类

class MyKey
{
public:
	MyKey(int index, int id)
	{
		this->mIndex = index;
		this->mID = id;
	}
public:
	int mIndex;
	int mID;
};

定义比较类型

struct mycompare
{
	bool operator()(const MyKey& key1, const MyKey& key2)const
	{
		return key1.mIndex > key2.mIndex;
	}
};

添加元素

	map mymap;//自动排序,要告诉他怎么排序
	mymap.insert(make_pair(MyKey(1, 2), 10));
	mymap.insert(make_pair(MyKey(4, 5), 20));

打印元素

	for (auto it = mymap.begin(); it != mymap.end(); it++)
	{
		cout << it->first.mIndex << ":" << it->first.mID << "=" << it->second << endl;
	}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001304.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号