八、STL之pair常见用法

一、pair简介

  • pair适用于当想要将两个元素绑定在一起作为一个合成元素、又不想要因此定义结构体时。
  • pair可看作一个内部有两个元素的结构体,且这两个元素的类型是可以指定的。
struct pair{
	typeName1 first;
	typeName2 second;
};
  • 常见用途
    • 用来代替二元结构体及其构造函数,节省编码时间
    • 作为map的键值对来进行插入

二、pair的定义

  • 头文件
#include
using namespace std;
  • map的内部实现中涉及pair,添加map头文件时会包含utility头文件
  • 定义
    • pair有两个参数,分别对应first和second的数据类型,它们可以是任意基本数据类型或容器
    • 想在pair定义时进行初始化,只需跟上一个小括号,里面包含想初始化的元素。
    • 临时构建pair有两种方法
      • 将类型定义写在前面,后面用小括号包含两个元素
      • 使用自带的make_pair函数
pair<typeName1, typeName2> name;

pair<string, int> p;//定义

pair<string, int>("haha", 5);//定义且初始化
make_pair("haha", 5);//使用make_pair函数

三、pair中元素的访问

  • pair中只有两个元素,分别是first和second,按正常结构体方式访问
pair<string, int> p;
p.first = "haha";
p.second = 5;

四、pair常用函数

  • 两个pair类型的数据可以直接使用==、!=、<=等比较大小,比较规则是先以first的大小作为标准,只有当first相等时才会判别second大小
  • pair作为map键值对插入示例
#include
#include
using namespace std;

int main(){
	map<string, int> mp;
	mp.insert(make_pair("haha", 6));
	mp.insert(pair<string, int>("haha", 9));
	for(map<string, int>::iterator it = mp.begin(); it != mp.end; it++){
		cout<<it->first<<" "<<it->second<<endl;
	}
	return 0;
}

你可能感兴趣的:(leetcode)