#2020寒假集训#C++STL-pair代码笔记

#include<stdio.h>
#include<iostream>
#include<bits/stdc++.h>//万能头文件 
#include<map>//map头文件
#include<utility>//含pair的头文件,也包含在map中 
using namespace std;
int main()
{
	pair<string,int> p1("zxl",100);
	pair<string,int> p2=make_pair("kk",99);
	//以上两种都是构建pair的方式,第一个是键,第二个是值 
	/*
		pair类似于结构体和map
		不同于结构体的是->pair自带比较函数,按照先键后值依次比较 
		pair可作为map的元素用insert插入
		不同于map的是->pair本身不需要键的一一对应,可以构建多个同键不同值的pair
		但插入到map中的话,键必须是唯一的,一个键只能对应一个值 
	*/ 
	map<string,int> score;
	score.insert(p1);
	score.insert(p2);//构建pair后用变量名写,或者直接在括号内构建pair都可插入 
	score.insert(make_pair("zj",0));
	printf("\n");
	for(map<string,int>::iterator it=score.begin();it!=score.end();it++)
	{
		if(it!=score.begin()) printf(" ");
		else printf("正遍历输出刚插入的三组map元素:");
		cout<<it->first<<" "<<it->second;
	}//it->first指键,it->second指值 
	cout<<endl<<endl;
	printf("用类似于结构体的方式访问pair元素zxl对应的int值:%d\n\n",p1.second);
	//p1.first是键"zxl",p1.second是值100,注意这儿的first和second不要加括号!!! 
	pair<string,int> p3=make_pair("zxl",120);
	printf("pair间的比较:p1>p3?=%d p2<p3?=%d\n\n",p1>p3,p2<p3);
	/*
		按照先键后值依次比较,string是按字典序 
		返回int型的则0表示假,1表示真
	*/ 
	return 0;
}

运行结果如下
在这里插入图片描述

发布了22 篇原创文章 · 获赞 0 · 访问量 417

猜你喜欢

转载自blog.csdn.net/qq_46184427/article/details/103973212