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

发布于 2020-02-16  144 次阅读


  • 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的大小。

代码

#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的键值对来进行插入。

#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;
}

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

本文链接:https://wnag.com.cn/829.html

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


正因为有要好好实现的梦想,所以今天也要好好加油。