首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ STL容器之pair快速入门

  • pair,可看作是一个内部有两个元素的结构体。 pair与之前学的iOS程序开发里的Swift语言的字典有点类似(Java工具包里的字典和python中的字典也是),区别不同的是pair不区分key和value。

使用pair需于代码头部添加#include,并且随后加上一句:using namespace std;即可。

注意:也可以在使用pair需于代码头部添加#include ,因为map的内部实现设计pair,因此记不住“utility”也可以用“map”偷一下懒。

pair的定义

(1)纯定义

pair<typename1, typename2> p;

pair有两个参数,,分别对应first和second的数据类型,可以任意数据类型或容器

(2)定义后并初始化

有两种方式。

一种是pair<string, string> p("和泉纱雾","A罩");

另一种是使用自带的make_pair函数

make_pair("和泉纱雾","A罩");

元素访问

pair的first和second分别按正常结构体的方式去访问即可。

比较操作数

两个pair类型数据可以直接使用==、!= 、<、<=、>、>=比较大小,比较规则是先以first的大小作为标准,只有当first相等后再去判别second的大小。

代码

代码语言:javascript
复制
#include<iostream>
#include<utility>
#include<string>
using namespace std;
int main(){
    pair<string, string> p;
    p.first = "和泉纱雾";
    p.secnond = "A";
    cout<< p.first << "" << p.second << endl;//输出和泉纱雾和A
    p = make_pair("奈奈子","B");
    cout<< p.first << "" << p.second << endl;//输出奈奈子和B
    p = pair<string, int>("椎名真白","B");
    cout<< p.first << "" << p.second << endl;//输出椎名真白和B

    pair<int, int> p1(5,10);
    pair<int, int> p2(5,15);
    pair<int, int> p3(10,5);
    if(p1<p3)printf("p1 < p3");
    if(p1<=p3)printf("p1 <= p3");
    if(p1<p2)printf("p1 < p2");
    return 0;
}

常见用途

(1)用来代替二元结构体及其构造函数,节省编码时间。

(2)作为map的键值对来进行插入。

代码语言:javascript
复制
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
    map<string, int> mp;
    mp.insert(make_pair("奈奈子", 1));
    mp.insert(pair<string, int>("椎名真白",2));
    for(map<string, int>::iterator it = mp.begin(); it != mp.end(); it++){
        cout << it->first << "" << it -> second << endl;
    }//输出"奈奈子", 1和"椎名真白",2
    return 0;
}

版权所有:可定博客 © WNAG.COM.CN

本文标题:《C++ STL容器之pair快速入门》

本文链接:https://cloud.tencent.com/developer/article/1616918

特别声明:除特别标注,本站文章均为原创,本站文章原则上禁止转载,如确实要转载,请电联:wangyeuuu@qq.com,尊重他人劳动成果,谢过~

下一篇
举报
领券