首页 > 代码库 > C++ STL pair详解
C++ STL pair详解
一.解释:
<style>p { margin-bottom: 0.25cm; direction: ltr; color: #00000a; line-height: 120%; text-align: left; orphans: 2; widows: 2 } p.western { font-family: "Liberation Serif", serif; font-size: 12pt } p.cjk { font-family: "Noto Sans CJK SC Regular"; font-size: 12pt } p.ctl { font-family: "Noto Sans CJK SC Regular"; font-size: 12pt } a:link { }</style>pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同。如果一个函数有两个返回值的话,如果是相同类型,就可以用数组返回,如果是不同类型,就可以自己写个struct ,但为了方便就可以使用 c++自带的pair ,返回一个pair,其中带有两个值。除了返回值的应用,在一个对象有多个属性的时候 ,一般自己写一个struct ,如果就是两个属性的话,就可以用pair 进行操作。pair 可以省的自己写一个struct .如果有三个属性的话,其实也是可以用的pair 的 ,极端的写法 pair <int ,pair<int ,int > >写法极端。(后边的两个 > > 要有空格,否则就会是 >>位移运算符)
二.用法:
1.头文件
#include<utility>
2.定义方法
pair<int, string> a; /*表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。*/ pair<string, string> a("James", "Joy");//直接初始化
3.常用操作
(1)对于pair类,由于它只有两个元素,分别名为first和second,因此直接使用普通的点操作符即可访问其成员
pair<string, string> a("Lily", "Poly"); string name; name = pair.second; /*a.first 返回Lily a.second 返回 Poly*/
(2)生成新的pair对象,可以使用make_pair对已存在的两个数据构造一个新的pair类型
int a = 8; string m = "James"; pair<int, string> newone; newone = make_pair(a, m);
三.例子
#include <utility> #include <iostream> using namespace std; typedef pair<string, string> au; //利用typedef简化其声明 int main() { int flag; string x1,x2; pair<string, string> p1("a","bc"); //创建一个pair对象,它的两个元素分别为string和string类型,其中first成员初始化为“a”,而second成员初始化为“ab” au p2("a","aa"); au p3; string name; name=p1.second; //返回1中名为second的数据成员 cout<<p1.first<<endl; cout<<name<<endl; flag=p1<p2; cout<<flag<<endl; //判断两个pair对象的大小按字典次序 flag=p1>p2; cout<<flag<<endl; while(cin>>x1>>x2) { p3=make_pair(x1,x2); //生成一个新的pair对象 cout<<p3.first<<"****"<<p3.second<<endl; } return 0; }
<style>p { margin-bottom: 0.25cm; direction: ltr; color: #00000a; line-height: 120%; text-align: left; orphans: 2; widows: 2 } p.western { font-family: "Liberation Serif", serif; font-size: 12pt } p.cjk { font-family: "Noto Sans CJK SC Regular"; font-size: 12pt } p.ctl { font-family: "Noto Sans CJK SC Regular"; font-size: 12pt } a:link { }</style> <style>p { margin-bottom: 0.25cm; direction: ltr; color: #00000a; line-height: 120%; text-align: left; orphans: 2; widows: 2 } p.western { font-family: "Liberation Serif", serif; font-size: 12pt } p.cjk { font-family: "Noto Sans CJK SC Regular"; font-size: 12pt } p.ctl { font-family: "Noto Sans CJK SC Regular"; font-size: 12pt } a:link { }</style>
C++ STL pair详解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。