pair及pair在vector中的使用
类模板: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中的使用相关推荐
- java vector pair_C++ vector中使用pair 及 pair的基本用法总结(转)
pair的基本用法总结 1.pair的应用 pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数 ...
- c语言中pair的头文件,C++中使用pair是否一定要包含头文件utility
我们知道C++中pair模板包含在中,书上也说要使用pair应该加入头#include,嗯,这没有错.只是,我们是否可以不加入这个头?要知道在大点的程序中少加载些头文件是节省运行时间的主要途径之一.我 ...
- C++:vector中使用.clear()函数
vector.clear()函数并不会把所有元素清零. vector有两个参数,一个是size,表示当前vector容器内存储的元素个数,一个是capacity,表示当前vector在内存中申请的这片 ...
- c++ vector 中的坑
0.uninitialized_copy template<class InputIterator, class ForwardIterator> ForwardIterator unin ...
- vector中find 的用法
vector没有自带的find函数,需要用普通的find函数,使用如下: vector<string> nameList1; //给nameList1赋值 string name; if( ...
- C++ vector中的resize,reserve,size和capacity函数讲解
前言 在介绍resize(),reserve(),size()和capacity()函数之前,先简单介绍一下c++中vector的概念. vector:顺序容器(可变大小数组).支持快速随机访问.在尾 ...
- C++从vector中删除指定元素
①只删除一个元素 vector<int> num;for(vector<int>::iterator iter=num.begin();iter!=num.end();iter ...
- vector中find和find_if的用法
今天郁闷写大作业中.唉..每次写都tm暴力遍历.有stl你用毛遍历啊.现在记下来.再遍历就剁手吧.(- -!) stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优缺点 ...
- 对vector中的数据排序
要求:从文件fin中读取数据,每行的格式如"王明 85",代表"姓名 成绩",具体有多少行不确定.按成绩从大到小排序,将结果写入文件fout. /*功能:从文件 ...
最新文章
- java泛型 简书_一文带你认识Java泛型基础
- ANDROID 中UID与PID的作用与区别
- git命令查看远程分支
- 数字经济时代凸显网络安全重要性
- gson json转map_Java几种常用JSON库性能比较
- TensorBoard:嵌入可视化
- visualvm连接服务器jvm进行监控
- carrot2 Workbench org.apache.http.client.HttpResponseException: Not Found 以及其他类找不到错误的解决办法
- 猎豹网校C++ Primer学习笔记2
- 定制版商业计划书PPT模板
- sd卡驱动 android,sd卡驱动异常怎么办 sd卡驱动程序无法使用【详解】
- DPI vs DFI
- 制作自己的 Kindle 电子书
- 电脑屏幕由刺眼的白色改为淡绿色
- [英语阅读]你的英文名特别吗
- WordPress优化教程大全
- 进制转换器java程序_Java实现复杂的进制转换器功能示例
- csr8510对应win10即插即用驱动
- 天瑞地安科技集团为你解读2017年平面设计大趋势
- AS中码云和GitHub的使用入门
热门文章
- 解决PCL报错: Assertion `point_representation_->isValid (point) “Invalid (NaN, Inf) point coordinates
- 自然语言处理——文本分类概述
- 【论文阅读】SISR综述:From Beginner to Master: A Survey for Deep Learning-based Single-Image Super-Resolution
- 上海大学保研夏令营计算机,2019年上海大学计算机学院保研情况
- InvalidDefinitionException
- 如何正确地写存储过程
- 常用的SQL语句大全
- 为什么需要稀疏编码及解释
- Muli3D 7 判断Ray与Sphere的关系
- 产品经理1.1_如何高效的开展产品需求评审会