专栏首页细嗅蔷薇C++ STL容器之pair快速入门

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

代码

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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Contest100000579 – 《算法笔记》3.5小节——入门模拟->进制转换

    http://codeup.cn/contest.php?cid=100000579

    lollipop72
  • Contest100000575 – 《算法笔记》3.1小节——入门模拟->简单模拟

    http://codeup.cn/contest.php?cid=100000575

    lollipop72
  • 优秀的网站加速插件 – WP rocket详细设置教程

    WP rocket是一款优秀的网站速度优化的插件,用于对网站内容进行缓存,它的设置比较简单,效果很好。

    lollipop72
  • LeetCode: 3_Longest Substring Without Repeating Characters | 求没有重复字符的最长子串的长度 | Medium

    题目: Given a string, find the length of the longest substring without repeating c...

    CloudDeveloper
  • hdu1063

    @坤的
  • Contest 176 - LeetCode 1352. Product of the Last K Numbers

    题解:由于数字可能为0,所以我们只要维护最后一个0 的位置pos 之后的所有数字的前缀乘积就可以了。如果k<pos 答案显然为0,如果k>pos那么答案就是s[...

    ShenduCC
  • LeetCode 594. 最长和谐子序列(map)

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-harmonious-subseque...

    Michael阿明
  • 2.A* Search

    小飞侠xp
  • 【走进OpenCV】学习Opencv不得不掌握的操作

    学习计算机视觉最重要的能力应该就是编程了,为了帮助小伙伴尽快入门计算机视觉,小白准备了【走进OpenCV】系列,主要帮助小伙伴了解如何调用OpenCV库,涉及到...

    小白学视觉
  • 用免费腾讯云服务器体验搭建 Nginx 静态网站

    首次可免费使用云主机 45 分钟 ,到期后云主机将被重置并退库,若想保留成果请及时留用。

    用户5915173

扫码关注云+社区

领取腾讯云代金券