pair的使用

关于pair

什么是pair

可以将pair看做一个内部有两个元素的结构体,且两个元素的类型是可以指定的。

struct pair{
typename1 first;
typename2 second;
}

何时使用pair

当想要将两个元素绑在一起作为一个合成元素,又不想要定义结构体的时候,使用pair可以方便地作为一个替代品。

pair的定义

头文件引入

# include <utility>
using namespace std;

定义

普通定义

//typename1,typename2可以是任何类型,容器或者基础类型
pair<typename1,typename2> p;
//string和int
pair<string,int>p;
//定义初始化
pair<string,int>p("hahaha",1);

临时定义

//1.构建匿名pair对象
pair<string,int> p("haha",1);
//2.使用自带的make_pair函数
make_pair("haha",1);

pair中元素访问

# include <utility>
# include <iostream>
using namespace std;
int main(void)
{
pair<string,int> p;
p.first="hahaha";
p.second=5;
cout<<p.first<<" "<<p.second<<endl;
p=make_pair("nihao",2);
cout<<p.first<<" "<<p.second<<endl;
p=make_pair("sawadika",5);
cout<<p.first<<" "<<p.second<<endl;
return 0;
}

pair常见函数

比较操作数>,=,<,>=,<=等等

比较规则是先以first大小作为标准,只有在first相等的时候才判断second

pair的常见用途

1.替代二元结构体以及其构造函数,节省时间

2.作为map中的键值对进行插入

map<string,int> m;
map.insert(make_pair("haha",1));
map.insert(make_pair("nihao",2));
for(map<string,int>::iterator it=m.begin();it!=m.begin();it++)
{
cout<<it->first<<" "<<it->second<<endl;
}

pair常见用法的更多相关文章

  1. STL pair 常见用法详解

    <算法笔记>学习笔记 pair 常见用法详解 //pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素, //又不想因此定义结构体时,使用pair ...

  2. Linux中find常见用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  3. php中的curl使用入门教程和常见用法实例

    摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...

  4. Guava中Predicate的常见用法

    Guava中Predicate的常见用法 1.  Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...

  5. find常见用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  6. iOS 开发多线程篇—GCD的常见用法

    iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...

  7. iOS开发多线程篇—GCD的常见用法

    iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...

  8. [转]EasyUI——常见用法总结

    原文链接: EasyUI——常见用法总结 1. 使用 data-options 来初始化属性. data-options是jQuery Easyui 最近两个版本才加上的一个特殊属性.通过这个属性,我 ...

  9. NSString常见用法总结

    //====================NSStirng 的常见用法==================== -(void)testString { //创建格式化字符串:占位符(由一个%加一个字 ...

随机推荐

  1. BZOJ 4154: [Ipsc2015]Generating Synergy KDtree+dfs序

    多组数据真tm恶心~ 把 $dfs$序和深度分别看作横纵坐标,然后用 $KDtree$ 数点就可以了~ #include <cstdio> #include <cstring> ...

  2. 51 Nod 最大子矩阵和

    1051 最大子矩阵和  基准时间限制:2 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的 ...

  3. 3.JSP

        JSP(Java Server Pages)页面是指扩展名为.jsp的文件,在一个JSP中可以包含指令标识,HTML代码, JavaScript代码,嵌入的Java代码,注释和JSP动作标识等 ...

  4. sh_01_列表基本使用

    sh_01_列表基本使用 name_list = ["zhangsan", "lisi", "wangwu"] # 1. 取值和取索引 # ...

  5. POJ 3352 Road Construction 中一个结论的证明

    题面 分析: 很多人都给出了做法,在这里不赘述.大概就是先把桥找出来,然后边双缩点,最后统计新图上的度数.因为缩点后为一棵树,所以度数为1(即为叶子)的点的数目+1再除以2下取整就是答案. 这里主要证 ...

  6. Misha and Permutations Summation

    A - Misha and Permutations Summation 首先这个 mod n! 因为数量级上的差别最多只会对康拓展开的第一项起作用所以这个题并不需要把 ord (p) 和 ord ( ...

  7. kafka offset存储

    存储方式 方式 方式来源 存储位置 自动提交 kafka kafka 异步提交 kafka kafka checkpoint spark streaming hdfs hbase存储 程序开发 hba ...

  8. linux工作常用命令

    修改文件后缀 如 将文件application.properties.sample改为application.properties,格式 mv  文件名称.{改前后缀,修改后的目标后缀} 定位到修改文 ...

  9. 2019Java第十四周课程总结

    关于记事本代码上周已经写过了,这次把他粘过来了,如下: 记事本 package jishiben; import java.awt.event.ActionEvent; import java.awt ...

  10. js将伪数组转换为标准数组的多种方法

    在js中,数组是特殊的对象,凡是对象有的性质,数组都有,数组表示有序数据的集合,而对象表示无序数据的集合. 那伪数组是什么呢,当然它也是对象,伪数组一般具有以下特点: 按索引方式存储数据: 具有len ...