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

Map/Multimap 容器的系列操作

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

Map/Multimap 容器的系列操作

一、Map容器简介

Map是STL 的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。

简介:
map中所有元素都是pair
pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)
所有元素都会根据元素的键值自动排序

本质:
map/multimap属于关联式容器,底层结构是用二叉树实现。

优点:
可以根据key值快速找到value值

map和multimap区别:
map不允许容器中有重复key值元素.
multimap允许容器中有重复key值元素

二、基本操作

1. 构造和赋值

	//创建map容器 
	map m1;
	m1.insert(pair(1,10));
	m1.insert(pair(2,20));
	m1.insert(pair(3,30));
	m1.insert(pair(4,40));
	PrintMap(m1);
	
	mapm2(m1);    //拷贝构造 
	PrintMap(m2);
	
	mapm3;        //赋值 
	m3=m2;
	PrintMap(m3); 

2. 大小和交换

//大小 
	mapm1;
	
	m1.insert(pair(1,10));
	m1.insert(pair(2,20));
	m1.insert(pair(3,30));
	m1.insert(pair(4,40));
	
  	if(m1.empty())
	{
	 	cout<<"m1为空!"<
		cout<<"m1不为空!"<m1;
	m1.insert(pair(1,10));
	m1.insert(pair(2,20));
	m1.insert(pair(3,30));
	m1.insert(pair(4,40));
	
	mapm2;
	m2.insert(pair(5,100));
	m2.insert(pair(6,200));
	m2.insert(pair(8,300));
	m2.insert(pair(7,400));
	
	cout<<"交换前:"< 

3. 查找和统计

	mapm;

	m.insert(pair(1,10));
	m.insert(pair(2,20));
	m.insert(pair(3,30));
	
	map::iterator pos=m.find(3);
	if(pos!=m.end())
	{
		cout<<"查到元素 key = "<< (*pos).first<<"    value = "<< (*pos).second<
		cout<<"未找到元素!"<	mapm;
	//插入
	//第一种 
	m.insert(pair(1,10));

	//第二种
	m.insert(make_pair(2,20));
	
	//第三种
	m.insert(map::value_type(3,30));
	
	//第四种
	m[4]=40;       
	cout< 

5. 排序

class MyCompare
{
	public:
		bool operator()(int v1,int v2)
		{
			return v1>v2;
		}
};
 
void test01()
{
	mapm;

	m.insert(make_pair(1,10));
	m.insert(make_pair(6,60));
	m.insert(make_pair(7,70));
	m.insert(make_pair(4,40));
	m.insert(make_pair(9,90));

	for(map::iterator it=m.begin();it!=m.end();it++)
	{
		cout<<"    key = "<<(*it).first<<"   value = "<second<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1022661.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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