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 { //创建格式化字符串:占位符(由一个%加一个字 ...
随机推荐
- TTTTTTTTTTTTT CF Good Bye 2015 C- New Year and Domino(CF611C) 二维前缀
题目 题意:给你一个n*m由.和#组成的矩阵,.代表可以放,#代表不可以,问在左上角(px,py)到(右下角qx,qy)这样的一个矩阵中,放下一个长度为2宽度为1的牌有多少种放法: #include ...
- postfix -- 发件调试
按照教程(https://www.cnblogs.com/huandada/p/10554603.html)搭建好postfix之后,由于收件的邮件运营商的限制,部分邮件不能正常发送,需要更多其他配置 ...
- oracle中更新关键字merge和 with as关键字
merge是oracle特有的语句,两表关联操作(增.删.改)就效率非常高 merge into table_name alias1 using (table|view|sub_query) alia ...
- vue中的js绑定样式
添加class 对象形式添加 activated为true时p标签的class为activated false时为空 <div id="app"> <p :c ...
- char类型可不可以存储一个汉字
java采用unicode,2个字节(16位)来表示一个字符, 无论是汉字还是数字字母,或其他语言.char 在java中是2个字节.所以可以存储中文 Java八种基本数据类型1)四种整数类型(byt ...
- 线程同步synchronized理解
Synchronized 理解 用法:1.同步方法.2.同步静态方法.3同步代码块. 理解Synchronized 的关键是“锁” (原理在最后) 同步代码有“锁”者执行.所谓的锁必须是同一个.静态的 ...
- leetcode 63 不同路径II
二维数组动态规划,还可以采用一维数组进行动态规划. class Solution { public: int uniquePathsWithObstacles(vector<vector< ...
- 搭建SVN服务器时报错:0x80004002
一.错误信息 Cannot query proxy blanket: no such interface supported (0x80004002) 二.解决方案 这个错误只会在有NVIDIA独立显 ...
- ControlTemplate in WPF —— DatePicker
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- WPF Prism Request Navigate activation error
其他测试项目时没有问题,但是有些项目有时候导航一直报错误! Referring the StockTraderRI, I created a popup region in my shell infB ...