首页 > 其他分享 >map容器中的“值”为vector<type>型的时候的操作

map容器中的“值”为vector<type>型的时候的操作

时间:2024-09-04 10:55:09浏览次数:5  
标签:map jiea res back vector push include type

map容器中的“值”为vector<type>型的时候的操作

这其实是我之前发布的一篇文章 “map的详细用法” 的延续,如果想要掌握并熟练运用 map 容器,你可以去看一下,建议收藏,因为你并不一定能够一下全部记住。

1.数据的输入

map容器中的“值”为vector<type>型的时候,数据的存储和一般的不太一样,具体代码如下

map<string,vector<string> > res;
res["jiea"].push_back("12");
res["jiea"].push_back("23");

2.数据的遍历

此时不能直接一个for()循环输出 it->first 和 it->second 了,要用两个for()循环,具体代码如下

#include<iostream>
#include <map>
#include <vector>
using namespace std;
int main()
{
	map<string,vector<string> > res;
	res["jiea"].push_back("34");
	res["teaf"].push_back("45");
	res["jiea"].push_back("12");
	res["jiea"].push_back("23");
	
	map<string,vector<string> >::iterator it;
	for(it=res.begin();it!=res.end();it++)
	{
		cout<<it->first<<" ";
//it->second 是 vector<string>类型的,就可以看作是 vector<string> v 
		for(int i=0;i<(it->second).size();i++)
		cout<<(it->second)[i]<<" ";
		cout<<endl;
	} 
}

【运行结果】

3.对“值”中的数据进行排序。

这里不是对“值”进行排序,所以借不借助vector容器都可以,具体代码如下

#include<iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
/*假设这里要求的排序是:"键 "升序,"值 "中的字符串按照字符串的长度升序,
若长度相等,按照字符串大小升序 */ 
bool cmp(string s1,string s2)
{
	if(s1.length()!=s2.length())
	return s1.length()<s2.length();
	else return s1<s2;
}
int main()
{
	map<string,vector<string> > res;
	res["jiea"].push_back("384");
	res["teaf"].push_back("49");
	res["jiea"].push_back("12");
	res["jiea"].push_back("3");
		
	map<string,vector<string> >::iterator it;
	for(it=res.begin();it!=res.end();it++)
	{
		cout<<it->first<<" ";
		sort(it->second.begin(),it->second.end(),cmp);
		for(int i=0;i<it->second.size();i++)
		cout<<it->second[i]<<" ";
		cout<<endl;
	} 
} 

【运行结果】

标签:map,jiea,res,back,vector,push,include,type
From: https://blog.csdn.net/wcj_______/article/details/141885942

相关文章

  • Blender多角度深度图depth map渲染,MVCNN数据生成
    现在在网上已有开源代码来生成论文中推荐的Phong渲染多视图,代码解析如下:https://blog.csdn.net/jorg_zhao/article/details/88345324,代码链接大佬传在了github上:https://github.com/zeaggler/ModelNet_Blender_OFF2Multiview该代码包针对phong渲染提供了Blender配置文件,渲......
  • php Semaphore 函数 信号量
    1一些理论基础:信号量:又称为信号灯、旗语用来解决进程(线程同步的问题),类似于一把锁,访问前获取锁(获取不到则等待),访问后释放锁。临界资源:每次仅允许一个进程访问的资源。临界区:每个进程中访问临界资源的那段代码叫临界区进程互斥:两个或以上的进程不能同时进入关于同一组共享变量......
  • bitmap(位图)的使用
    零存零取,整存零取,整存整取,零存整取bitmap介绍位图不是真正的数据类型,它是定义在字符串类型中,一个字符串类型的值最多能存储512M字节的内容,  位上限:2^(9(512)+10(1024)+10(1024)+3(8b=1B))=2^32b语句操作:setbit语法:SETBITkeyoffsetvalue(offset位偏移量,从0开始......
  • 【C++】_vector定义、_vector常用方法解析
    不管心情如何,不论今天过得怎么样,无论身在何方,请记得...微笑!......
  • [Typescript] Build mode of tsc: tsc -b
    Along-awaitedfeatureissmartincrementalbuildsforTypeScriptprojects.In3.0youcanusethe --build flagwith tsc.Thisiseffectivelyanewentrypointfor tsc thatbehavesmorelikeabuildorchestratorthanasimplecompiler.Running tsc--bui......
  • 今日分享——Map集合和Stream流
    Map集合认识Map集合1.Map集合称为双列集合,一次需要存一对数据做为一个元素,格式:{key1=value1,key2=value2,key3=value3,…}2.Map集合的每个元素分为两部分:key和value,key称为键,value称为值,整体叫键值对,因此Map也叫“键值对集合”3.Map集合的所有键是不允许重复的......
  • 【Java学习】Map集合&Stream流
    一、Collections1、可变参数定义:是一种特殊形参,定义在方法、构造器的形参列表里,定义格式是:方法名(数据类型... 形参名称){ }可变参数的特点和好处特点:可以不传数据给它;可以传一个或者同时传多个数据给它;也可以传一个数组给它;好处:常常用来灵活的接收数据。注意事项可......
  • 基因图谱(Genomic Mapping)分析与应用
    基因图谱(GenomicMapping)是基因组学研究中一项至关重要的技术,它为科学家提供了关于基因的位置和距离的详细信息。通过基因图谱的构建,研究人员可以揭示基因与性状之间的关系,探索疾病的遗传机制,并推动个性化医学的发展。本文将详细分析基因图谱的类型、构建方法、应用场景以及它......
  • Map集合语法
    1.Map集合1.1Map集合概述和特点【理解】Map集合概述interfaceMap<K,V> K:键的类型;V:值的类型Map集合的特点双列集合,一个键对应一个值键不可以重复,值可以重复Map集合的基本使用publicclassMapDemo01{  publicstaticvoidmain(String[]args){ ......
  • pycharm报错:TypeError: unhashable type: 'slice'
    一、原因:没有使用正确的数组或没有使用正确的读取数据的方式二、因为我在yaml中,传参用的是字典格式三、但是@pytest.mark.parametrize("",[]),需要传数组importpytest#数组的形式@pytest.mark.parametrize("name,word",[["安琪拉","火烧屁屁咯"],["黄忠","黄忠黄......