类模板:template<class T1,class T2> struct pair

参数:T1是第一个值得数据类型,T2是第二个值的数据类型。

功能:pair将一对值组合成一个值

这一对值可以具有不同的数据类型(T1和T2),

两个值可以分别用pair的两个公有函数first和second访问

1.定义(构造):

pair<int ,double> p1;//默认构造函数

pair<int ,double> p2(1, 2.4);//用给定值初始化

pair<int ,double> p3(p2);//拷贝构造函数

#include<iostream>
using namespace std;
#include<string>
#include <utility>
int main()
{pair<int, string> p1; //default constructor pair<string, double>p2("zhouyu", 100); // overroad constructorpair<string, double>p3 = (p2);p2.first = "nobody"; p2.second = 20;cout << p2.first << " " << p2.second << endl;cout << p3.first << " " << p3.second << endl;return 0;
}

makepair的用法

除了构造函数,标准库还定义了一个make_pair函数,由传递给它的两个实参生成一个新的pair对象

pair<string, string> next_auth;
string first,last;
while(cin>>first>>last) {next_auth=make_pair(first,last);
}

还可以用下列等价的更复杂的操作:

next_auth=pair<string,string>(first,last);

由于pair的数据成员是公有的,因而可如下直接地读取输入:

pair<string, string> next_auth;
while(cin>>next_auth.first>>next_auth.last) {//...
}

在vector中的pair的使用

1声明vector:

vector<pair<int,int> >vec

往vector中插入数据,需要用到make_pair:

vec.push_back(make_pair(20,30));

vec.push_back(make_pair<int,int>(10,50));

定义迭代器:

vector<pair<int,int> > ::iterator iter;

for(iter=vec.begin();iter!=vec.end();iter++);

数据读取:

第一个数据:(*iter).first

第二个数据:(*iter).second

pair及pair在vector中的使用相关推荐

  1. java vector pair_C++ vector中使用pair 及 pair的基本用法总结(转)

    pair的基本用法总结 1.pair的应用 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数 ...

  2. c语言中pair的头文件,C++中使用pair是否一定要包含头文件utility

    我们知道C++中pair模板包含在中,书上也说要使用pair应该加入头#include,嗯,这没有错.只是,我们是否可以不加入这个头?要知道在大点的程序中少加载些头文件是节省运行时间的主要途径之一.我 ...

  3. C++:vector中使用.clear()函数

    vector.clear()函数并不会把所有元素清零. vector有两个参数,一个是size,表示当前vector容器内存储的元素个数,一个是capacity,表示当前vector在内存中申请的这片 ...

  4. c++ vector 中的坑

    0.uninitialized_copy template<class InputIterator, class ForwardIterator> ForwardIterator unin ...

  5. vector中find 的用法

    vector没有自带的find函数,需要用普通的find函数,使用如下: vector<string> nameList1; //给nameList1赋值 string name; if( ...

  6. C++ vector中的resize,reserve,size和capacity函数讲解

    前言 在介绍resize(),reserve(),size()和capacity()函数之前,先简单介绍一下c++中vector的概念. vector:顺序容器(可变大小数组).支持快速随机访问.在尾 ...

  7. C++从vector中删除指定元素

    ①只删除一个元素 vector<int> num;for(vector<int>::iterator iter=num.begin();iter!=num.end();iter ...

  8. vector中find和find_if的用法

    今天郁闷写大作业中.唉..每次写都tm暴力遍历.有stl你用毛遍历啊.现在记下来.再遍历就剁手吧.(- -!) stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优缺点 ...

  9. 对vector中的数据排序

    要求:从文件fin中读取数据,每行的格式如"王明 85",代表"姓名 成绩",具体有多少行不确定.按成绩从大到小排序,将结果写入文件fout. /*功能:从文件 ...

最新文章

  1. java泛型 简书_一文带你认识Java泛型基础
  2. ANDROID 中UID与PID的作用与区别
  3. git命令查看远程分支
  4. 数字经济时代凸显网络安全重要性
  5. gson json转map_Java几种常用JSON库性能比较
  6. TensorBoard:嵌入可视化
  7. visualvm连接服务器jvm进行监控
  8. carrot2 Workbench org.apache.http.client.HttpResponseException: Not Found 以及其他类找不到错误的解决办法
  9. 猎豹网校C++ Primer学习笔记2
  10. 定制版商业计划书PPT模板
  11. sd卡驱动 android,sd卡驱动异常怎么办 sd卡驱动程序无法使用【详解】
  12. DPI vs DFI
  13. 制作自己的 Kindle 电子书
  14. 电脑屏幕由刺眼的白色改为淡绿色
  15. [英语阅读]你的英文名特别吗
  16. WordPress优化教程大全
  17. 进制转换器java程序_Java实现复杂的进制转换器功能示例
  18. csr8510对应win10即插即用驱动
  19. 天瑞地安科技集团为你解读2017年平面设计大趋势
  20. AS中码云和GitHub的使用入门

热门文章

  1. 解决PCL报错: Assertion `point_representation_->isValid (point) “Invalid (NaN, Inf) point coordinates
  2. 自然语言处理——文本分类概述
  3. 【论文阅读】SISR综述:From Beginner to Master: A Survey for Deep Learning-based Single-Image Super-Resolution
  4. 上海大学保研夏令营计算机,2019年上海大学计算机学院保研情况
  5. InvalidDefinitionException
  6. 如何正确地写存储过程
  7. 常用的SQL语句大全
  8. 为什么需要稀疏编码及解释
  9. Muli3D 7 判断Ray与Sphere的关系
  10. 产品经理1.1_如何高效的开展产品需求评审会