关闭

STL - miltimap(可重映射)

标签: stlmapmultimap映射
557人阅读 评论(2) 收藏 举报
分类:

#include <iostream>
#include <map>
#include <string>

using namespace std;

//Multimap 案例:
//1个key值可以对应多个valude  =分组 
//公司有销售部 sale (员工2名)、技术研发部 development (1人)、财务部 Financial (2人) 
//人员信息有:姓名,年龄,电话、工资等组成
//通过 multimap进行 信息的插入、保存、显示
//分部门显示员工信息 

class Person
{
public:
	string	name;
	int		age;
	string	tel;
	double	saly;
};

void multimapInit()
{
	Person p1, p2, p3, p4, p5;

	p1.name = "王1";
	p1.age = 31;

	p2.name = "王2";
	p2.age = 32;

	p3.name = "张3";
	p3.age = 33;

	p4.name = "张4";
	p4.age = 34;

	p5.name = "赵5";
	p5.age = 35;

	multimap<string, Person> map2;
	//sale部门
	map2.insert(make_pair("sale", p1));
	map2.insert(make_pair("sale", p2));

	//development 部门
	map2.insert(make_pair("development", p3));
	map2.insert(make_pair("development", p4));

	//Financial 部门
	map2.insert(make_pair("Financial", p5));


	for (multimap<string, Person>::iterator it = map2.begin(); it != map2.end(); it++)
	{
		cout << it->first << "\t" << it->second.name << endl;
	}
	cout << "遍历结束" << endl;

	//
	int num2 = map2.count("development");
	cout << "development部门人数==>" << num2 << endl;

	cout << "development部门员工信息" << endl;
	multimap<string, Person>::iterator it2 = map2.find("development");

	int tag = 0;
	while (it2 != map2.end() && tag < num2)
	{
		cout << it2->first << "\t" << it2->second.name << endl;
		it2++;
		tag++;
	}

}


//age = 32修改成 name32
void multimapChange()
{
	Person p1, p2, p3, p4, p5;

	p1.name = "王1";
	p1.age = 31;

	p2.name = "王2";
	p2.age = 32;

	p3.name = "张3";
	p3.age = 33;

	p4.name = "张4";
	p4.age = 34;

	p5.name = "赵5";
	p5.age = 35;

	multimap<string, Person> map2;
	//sale部门
	map2.insert(make_pair("sale", p1));
	map2.insert(make_pair("sale", p2));

	//development 部门
	map2.insert(make_pair("development", p3));
	map2.insert(make_pair("development", p4));

	//Financial 部门
	map2.insert(make_pair("Financial", p5));


	cout << "\n按照条件 检索数据 进行修改 " << endl;
	for (multimap<string, Person>::iterator it = map2.begin(); it != map2.end(); it++)
	{
		//cout << it->first << "\t" << it->second.name << endl;
		if (it->second.age == 32)
		{
			it->second.name = "name32";
		}
	}


	for (multimap<string, Person>::iterator it = map2.begin(); it != map2.end(); it++)
	{
		cout << it->first << "\t" << it->second.name << endl;
	}


}

int main()
{
	multimapInit();
	multimapChange();
	
	return 0;
}

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

STL系列之map(映射)

介绍   map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。map由键(key)和值(value)构成一对单元,key 和 value...
  • applebite
  • applebite
  • 2015-07-01 21:57
  • 3657

【C++】STL常用容器总结之八:映射map

9、映射mapMap是键-值对的集合,map中的所有元素都是pair,可以使用键作为下标来获取一个值。Map中所有元素都会根据元素的值自动被排序,同时拥有实值value和键值key,pair的第一元素...
  • hero_myself
  • hero_myself
  • 2016-08-25 12:20
  • 1508

VTK修炼之道64:纹理映射体绘制_三维纹理映射

1.三维纹理映射 目前市面上的能多先科都是支持三维纹理映射的。利用三维纹理映射,将体数据映射至一组与视图平面平行的多边形,避免了二维纹理映射方法中因为纹理图像的切换造成的瑕疵。VTK中三维纹...
  • shenziheng1
  • shenziheng1
  • 2017-02-06 23:27
  • 1116

c++ STL 映射(map)

1.使用map要包含头文件 #include 2.映射(map)和多重映射(multimap)是基于某一类新key的键集的存在,提供对TYPE类型的数据进行快速和高效的检索。multimap允许键值重...
  • upcer_Yangyifu
  • upcer_Yangyifu
  • 2018-01-01 11:15
  • 17

运用函数指针和STL的Map实现关键字key与成员函数的映射

运用函数指针和STL的Map实现关键字key与成员函数的映射
  • q357010621
  • q357010621
  • 2017-03-22 23:36
  • 128

STL之关联容器的映射底层

STL的关联容器有set, map, multiset, multimap.用于实现它们的底层容器有划入标准的rb_tree和待加入标准的hashtable. 底层容器rb_tree为上层容器提供了...
  • tangchenchan
  • tangchenchan
  • 2015-07-05 23:45
  • 770

【C++】STL常用容器总结之十:多重映射multimap和多重集合multiset

11、多重映射multimap和多重集合multiset由于multimap/multiset与map/set有太多的相似之处,故在这里我们一起进行介绍。首先需要指出的是,multimap的特性以及用...
  • hero_myself
  • hero_myself
  • 2016-08-25 12:32
  • 973

【C++】STL常用容器总结之八:映射map

9、映射mapMap是键-值对的集合,map中的所有元素都是pair,可以使用键作为下标来获取一个值。Map中所有元素都会根据元素的值自动被排序,同时拥有实值value和键值key,pair的第一元素...
  • hero_myself
  • hero_myself
  • 2016-08-25 12:20
  • 1508

C++STL通用容器 之 映射

n常用的映射类是map,multimap。在前述的各个容器中,仅保存着一样东西,但是在映射中将会得到两样东西:关键字以及作为对关键字进行查询得到的结果值,即一对值。map单映射中Key与Value是一...
  • u014634338
  • u014634338
  • 2014-07-24 22:31
  • 988

C++的STL中的映射(map)使用说明

文章转载自:http://www.cnblogs.com/yaoyueduzhen/p/4537123.htmlmap是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在m...
  • u011499425
  • u011499425
  • 2016-09-18 18:23
  • 211
    个人资料
    • 访问:395801次
    • 积分:7932
    • 等级:
    • 排名:第3047名
    • 原创:401篇
    • 转载:30篇
    • 译文:11篇
    • 评论:87条
    博客专栏