家居定制类网站建设,html网页模板,品牌网站模板,室内装修设计图纸目录
一、pair简介
二、 pair的创建
三、pair的赋值
四、pair的排序
#xff08;1#xff09;用sort默认排序
#xff08;2#xff09;用sort中的自定义排序进行排序
五、pair的交换操作 一、pair简介
pair是一个模版类#xff0c;可以存储两个值的键值对.first以…目录
一、pair简介
二、 pair的创建
三、pair的赋值
四、pair的排序
1用sort默认排序
2用sort中的自定义排序进行排序
五、pair的交换操作 一、pair简介
pair是一个模版类可以存储两个值的键值对.first以及.second。常见用途1️⃣用于需要返回两个值的函数 2️⃣用于容器的元素如std::mapstd::setpair包含在头文件#include utility
二、 pair的创建
1默认构造函数空的pair对象。
// 1. 默认构造函数即创建空的 pair 对象
pair DataType1, DataType2 pair1;三、pair的赋值
1直接在构造的时候进行赋值有初始值的pair对象。
// 2. 直接使用 2 个元素初始化成 pair 对象
pair DataType1, DataType2 pair2(DataType1_Value, DataType2_Value);2拷贝已有对象赋值。
// 3. 拷贝构造函数即借助另一个 pair 对象创建新的 pair 对象
pair DataType1, DataType2 pair3(pair2);
3为pair单个值赋上对应值。
pairstring,int pair1;
pair1.first baidu;
pair1.second 34;
四、pair的排序
1用sort默认排序
现将第一个元素.first进行比较如果相等再比较.second
#include iostream
#include algorithm
#include utilityusing namespace std;int main(void){vectorpairint,int p;p.push_back({7,8});p.push_back({5,6});p.push_back({3,4});p.push_back({1,2});sort(p.begin(),p.end());for(int i0;ip.size();i){coutp[i].first p[i].secondendl;}
}2用sort中的自定义排序进行排序
这里举例由大到小的排序顺序
#include iostream
#include algorithm
#include utilityusing namespace std;bool cmp(pairint,int a,pairint,int b){if(a.first!b.first){return a.firstb.first;}else{return a.secondb.second;}
}int main(void){vectorpairint,int p;p.push_back({1,2});p.push_back({3,4});p.push_back({5,6});p.push_back({7,8});sort(p.begin(),p.end(),cmp);for(int i0;ip.size();i){coutp[i].first p[i].secondendl;}
}
运行结果 五、pair的交换操作
#include iostream
#include algorithm
#include utilityusing namespace std;int main(void){pairint,int a({1,2});pairint,int b({3,4});couta.first a.secondendl;coutb.first b.secondendl;a.swap(b);couta.first a.secondendl;coutb.first b.secondendl;
}运行结果