广州做护肤品的网站重庆宣传网站怎么做
news/
2025/9/29 13:02:30/
文章来源:
广州做护肤品的网站,重庆宣传网站怎么做,网站模板切换,深圳坪山新闻01 pair的定义和结构
在C中#xff0c;pair是一个模板类#xff0c;用于表示一对值的组合#xff0c;它位于头文件中。 pair类的定义如下:
templateclass T1,class T2struct pair{T1 first;//第一个值T2 second;//第二个值// 构造函数pair();pair(const T1 X…
01 pair的定义和结构
在C中pair是一个模板类用于表示一对值的组合它位于头文件中。 pair类的定义如下:
templateclass T1,class T2struct pair{T1 first;//第一个值T2 second;//第二个值// 构造函数pair();pair(const T1 X, const T2 y);//比较运算符重载bool operator(const pair rhs) const;bool operator!(const pair rhs) const;//其他成员函数和特性// ... };pair类模板有两个模板参数T1和T2分别表示第一个值和第二个值的类型。 pair类有两个成员变量first和second,分别表示第一个值和第二个值。 pair类还有一些成员函数和特性例如默认构造函数、带参数的构造函数、比较运算符重载等。 使用pair类你可以方便地将两个值组合在一起并进行传递、存储和操作。 例如可以将两个整数组合在一起作为函数的返回值或者将一对值存储在容器中。 下面是一些使用pair的示例
#includebits/stdc.h
using namespace std;
int main(){pairint,double p1(1,3.14);pairchar,string p2(a,hello);coutp1.first,p1.secondendl;coutp2.first,p2.secondendl;return 0;
}02 pair的嵌套
pair可以进行嵌套也就是说可以将一个pair对象作为另一个pair对象的成员。 通过嵌套pair你可以方便地组合多个值并形成更复杂的数据结构。例如你可以创建一个三维坐标系的点其中第1个维度由一个整数表示第2、3个维度由一个pair表示。 下面是一个示例代码演示了如何嵌套使用pair
#includebits/stdc.h
using namespace std;
int main(){pairint,int p1(1,2);pairint,pairint,int p2(3,make_pair(4,5));pairpairint,int,pairint,int p3(make_pair(6,7),make_pair(3,4));coutp1.first,p1.secondendl;coutp2.first,p2.second.first,p2.second.secondendl;coutp3.first.first,p3.first.second,p3.second.first,endl;return 0;
}在这个示例中我们创建了三个pair对象p1、p2和p3. ·p1是一个简单的pair包含两个整数值。 ·p2是一个嵌套的pair其中第一个值是一个整数第二个值是一个pair其中包含两个整数值。 ·p3是一个嵌套的pair其中每个值都是一个pair每个pair包含两个整数值。 通过访问嵌套的pair对象的成员变量我们可以获取到相应的值。
03 pair自带排序规则
pair自带的排序规则是按照first成员进行升序排序。 如果first成员相等则按照second成员进行升序排序。 这意味着当你使用标准库中的排序算法如sort)对包含pair对象的容器进行排序时会根据pair对象的first成员进行排序。 下面是一个示例代码演示了如何使用par进行排序
#includebits/stdc.h
using namespace std;
int main(){vectorpairint,int vec;vec.push_back(make_pair(3,2));vec.push_back(make_pair(1,4));vec.push_back(make_pair(2,1));sort(vec.begin(),vec.end());for(const auto p : vec){coutp.first,p.secondendl;} return 0;
}在这个示例中我们创建了一个存储pair对象的向量vec,其中包含三个pair对象 然后我们使用sort函数对vec进行排序。由于pair对象的排序规则是按照first成员进行升序排序所以排序后的结果是 最后我们通过遍历vec并输出每个pair对象的成员验证了排序结果。 需要注意的是如果你想按照其他排序规则对pair进行排序可以自定义比较函数或使用lambda表达式来传递给排序算法。这样你可以根据自己的需求定义排序规则.
04 代码示例
#includebits/stdc.h
using namespace std;
//定义一个结构体表示一个人的信息
struct Person{string name;int age;
};
int main(){
//创建一个存储Person对象的向量vectorPerson people;
//添加一些Person对象到向量中people.push_back({Alice,25});people.push_back({Bob,30});people.push_back({Charlie,20});
//创建一个存储pair的向量,每个pair包含一个Person对象和一个评分vectorpairPerson,int scores;
//添加一些pair到向量中scores.push_back({people[0],90});scores.push_back({people[1],85});scores.push_back({people[2],95});
//遍历pair向量并输出每个人的姓名、年龄和评分
for(const auto pair:scores){coutName: pair.first.nameendl;coutAge: pair.first.ageendl;coutScore: pair.secondendl;coutendl;
} return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921841.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!