火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

二值属性pair的用法

作者: 作者的头像   huolong , 时间:2023-01-14 19:37:01 , 所有人可见, 阅读  3

vector<pair<int,int>>用法
vector的这种用法有点类似于map。

与map不同的是:

map会对插入的元素按键自动排序,而且不允许键重复。
vector的这种用法不会自动排序,而且允许重复。

基本使用

vector<pair<int,int>> 可以使用vector的方法
vector的基本方法:vector的基本方法

// 创建 pair pair1; pair pair2("调用第 2 种","构造函数");
pair pair3(pair2); pair pair4(make_pair("调用移动", "构造函数")); pair pair5(string("调用第 5 种"), string("构造函数"));

// 属性值 p.first; p.second;

// 运算符 <,<=,>,>=,==,!=;

//函数 sort(); // 默认对first升序,当first相同时对second升序 swap();

举例:

#include <bits/stdc++.h>  
#define x first  //重命名  
#define y second  //重命名  
using namespace std;  


vector< pair<int,int> > vec;

int main()  
{  
    vec.push_back({1,2});
    vec.push_back({1,3});

    swap(vec[0], vec[1]); //可以进行交换  

    vec.push_back({2,2});
    vec.push_back({1,1});

    vec.push_back({2,4});
    vec.push_back({2,3});
    // 运算符 <,<=,>,>=,==,!=; 按字典序比较  
    if (vec[4] < vec[5]){
        cout << "yes\n" ;
    }else cout <<"no\n" ;

    vec.push_back({3,2});

    for(auto i : vec){
        cout << i.x << " " << i.y << endl;
    }
    cout << endl;

    //sort自动按第一键值排序,从小到大  
    // 默认对first升序,当first相同时对second升序 
    sort(vec.begin(), vec.end());

    for(auto i : vec){
        cout << i.x << " " << i.y << endl;
    }
    cout << endl;

    return 0;  
}
/*
程序运行结果: 
no
1 3
1 2
2 2
1 1
2 4
2 3
3 2

1 1
1 2
1 3
2 2
2 3
2 4
3 2
*/ 

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码