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