欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ pair,map,vector简单用法

程序员文章站 2022-07-14 12:30:02
...
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main(){
 
	pair<int,double>  p1;
	p1 = std::make_pair(1,2.5);
	cout<<p1.first<<endl<<p1.second<<endl;
 
	pair<int,float> p2(2,4.56);
	cout<<p2.first<<endl<<p2.second<<endl;
 
 
	vector<int> v1 ;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(3);
	v1.push_back(4);
 
    v1.pop_back();//删除最后一个元素,返回void
	int begin= v1.front();//返回第一个元素的值,不删除
	cout<<begin<<endl;
 
	map<int,char> m1 ;
	m1[0] = 'a';
	m1[1] = 'b';
	m1[2] = 'c';
	cout<<m1[2]<<endl;
	return 0;
}
 
//1
//2.5
//2
//4.56
//1
//c
//请按任意键继续. . .

pair的常见用法 详解
当想把2个元素绑在一起作为1个合成元素,
又不想因此定义结构体时,
使用pair可以作为1个替代品。

也就是说,pari实际上可以看做是1个内部有2个元素的结构体,
且两个元素的类型是指定的,
如下面代码所示

struct pair{
	typeName1 first;
	typeName2 second;
};

1.pair的定义
要使用pair,应该添加头文件#include <utility>,并且在头文件下面加上using namespace std;
由于map的内部实现涉及pair,因此添加map头文件就会自动添加utility头文件,可省略上述步骤
pair有2个参数,分别对应first和second的数据类型,他们可以是任意基本数据类型或容器

pair<typeName1,typeName2> name;

因此,想要定义参数为string和int类型的pair,可以这么写

pair<string,int>

如果想要在定义pair的时候进行初始化,只需要跟上1个小括号,里面填写2个想要初始化的元素即可

pair<string,int> p("haha",5);

如果想要临时建立1个pair

  • pair<sting,int>(“haha”,5);
  • make_pair(“haha”,5);

2.pair中元素的访问
只有2个元素,分别是first,second,像访问结构体那样去访问即可

pair<string,int> p;
p.first="haha";
p.second=5;
cout<<p.first<<" "<<p.second<<endl;
p=make_pair("xixi",55);
cout<<p.first<<" "<<p.second<<endl;
p=pair<string,int>("heihei",555);
cout<<p.first<<" "<<p.second<<endl;
//haha 5
//xixi 55
//heihei 555

3.pair常用函数实例解析
2个pair类型的数据可以直接用== != < <= > >=比较大小
总是以first大小作为标准,只有当first相等时才判断second的大小

//2个pair类型的数据可以直接用== != < <= > >=比较大小
//总是以first大小作为标准,只有当first相等时才判断second的大小
pair<int,int>p1(5,10);
pair<int,int>p2(5,15);
pair<int,int>p3(10,5);
if(p1<p3)printf("p1<p3\n");
if(p1<=p3)printf("p1<=p3\n");
if(p1<p2)printf("p1<p2\n");
//p1<p3
//p1<=p3
//p1<p2

4.pair的常用用途
a.可以代替二元结构体和构造函数,
b.作为map的键值对来进行插入

map<string,int> mp;
mp.insert(make_pair("heihei",5));
mp.insert(pair<string,int>("haha",10));
for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++){
	cout<<it->first<<" "<<it->seonc<<endl;
}
// haha 10
//haha 5
相关标签: 算法笔记