pair常见用法
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常见用法的更多相关文章
- STL pair 常见用法详解
<算法笔记>学习笔记 pair 常见用法详解 //pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素, //又不想因此定义结构体时,使用pair ...
- Linux中find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- php中的curl使用入门教程和常见用法实例
摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...
- Guava中Predicate的常见用法
Guava中Predicate的常见用法 1. Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...
- find常见用法
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- iOS 开发多线程篇—GCD的常见用法
iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...
- iOS开发多线程篇—GCD的常见用法
iOS开发多线程篇—GCD的常见用法 一.延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)调用NSObject的方法 [self performSelector:@selector(run) ...
- [转]EasyUI——常见用法总结
原文链接: EasyUI——常见用法总结 1. 使用 data-options 来初始化属性. data-options是jQuery Easyui 最近两个版本才加上的一个特殊属性.通过这个属性,我 ...
- NSString常见用法总结
//====================NSStirng 的常见用法==================== -(void)testString { //创建格式化字符串:占位符(由一个%加一个字 ...
随机推荐
- SSM框架搭建,以及mybatis学习
前两天在研究SSM框架,然后看到一篇博文,写的很清晰,照着实现了一下,这里就不重复写了,把博文地址留一下 http://blog.csdn.net/zhshulin/article/details/3 ...
- ar9331修改flash大小和df、cat /proc/mtd的区别
首先感谢黄工的指导. 在openwrt固件目录下target/linux/ar71xx/image/Makefile,找到对应的机型,修改为4M,8M,16M,32M. 以oolite机型为例,如图所 ...
- postman教学视频百度网盘转载分享
百度云盘教学视频分享:https://pan.baidu.com/s/1r_e08FOkvQBZcC5-vU5M4w postman官网及下载地址:https://www.getpostman.com ...
- 生成json文件写入本地
public class Json { public static void main(String[] args) { String fullPath = null; //例如:fullPath=& ...
- 记一次elastic-job使用
当当的elastic-job定时任务 业务场景是定时从微信取accesstoken和jsticket,因为都只有7200秒的有效时间,所以设置了定时任务,定时将得到的数据存到redis缓存中 问题1: ...
- What is the !! (not not) operator in JavaScript?
What is the !! (not not) operator in JavaScript? 解答1 Coerces强制 oObject to boolean. If it was falsey ...
- cors 预请求
1.CORS的其他限制 默认允许的方法只有:GET.HEAD.POST默认允许的Content-Type:text/plain.multipart/form-data.applicaton/x-www ...
- 安装源配置文件“/etc/apt/sources.list”问题
安装docker过程中使用以下命令设置稳定存储库. $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker ...
- Emacs常用命令快速参考
原文地址 Emacs常用命令的汇总,来自Emacs参考卡片 注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shif ...
- influxDB使用小结
在集群中安装influxdb influxdb提供了官方镜像,因此在集群中安装influxdb十分方便,只需要指定镜像名为influxdb即可自动下载运行,只需要配置环境变量就可以进行初始化设置 以下 ...