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. Log4net日志文件自动按月份存放和日志独占问题的解决

    让log4net日志文件自动按月份存放 log4net日志文件的作用还真不小,可以保存管理员.用户对数据库的任何操作,保存管理员和用户的登录记录,分析系统运行错误,所以不舍得随便将日志文件Delete ...

  2. 降维算法----PCA原理推导

    1.从几何的角度去理解PCA降维 以平面坐标系为例,点的坐标是怎么来的? 图1                                                             ...

  3. echarts之bootstrap选项卡不能显示其他标签echarts图表

    在echarts跟bootstrap选项卡整合的时候,默认第一个选中选项卡可以正常加载echarts图表,但是切换其他选项的时候不能渲染出其他选项卡echarts图表. 解决方法: 在js中添加代码: ...

  4. 【JVM】jstack和dump线程分析(2)

    一:jstack jstack命令的语法格式: jstack  <pid>.可以用jps查看java进程id.这里要注意的是:1. 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式 ...

  5. leetcode 33搜索旋转排序数组

    暴力解法:O(n) 想办法用二分查找Ologn

  6. iOS 的 Gif 渲染

    关于gif的展示,有些项目中很少用到,所以有的人对于这方面了解不是很多 下面介绍几种展示gif的方法,希望大家可以用得上,有更好的方法欢迎评论区留言 一,展示本地的gif,使用的SDWebImage里 ...

  7. 由MySQL登录不了引发的一些问题

    经手的项目按照老板的意思,想搞一个类似于个人学习版的版本给客户试用.计划通过网络将安装包发布出去,让客户自行下载安装使用,碰到个问题:数据库的安装.因为后台使用了MS SQLServer 2008/2 ...

  8. Cross-Multimedia dataset

    Wikipedia: http://www.svcl.ucsd.edu/projects/crossmodal/ PKU Xmedia: https://github.com/yeqinglee/mv ...

  9. Python的环境的搭建

    下载Python软件安装,配置环境变量 给Eclipse安装pydev插件即可

  10. ceph集群添加osd

    获取osd的ID 这个操作是在管理节点上执行 [root@node-4 osd]# ceph osd create 2 对磁盘做处理 [root@node-4 ~]# parted /dev/sdb ...