对一对中的值进行排序

时间:2014-12-03 10:10:40

标签: c++ algorithm sorting

我想知道如何在一对结构中对值进行排序。任何指针都非常感谢。

下面粘贴了最小的工作示例。

#include <iostream>

using namespace std;

int main ()
{

pair <int, int> myPair;
myPair = make_pair(5, 3);
cout << myPair.first << " " << myPair.second << endl;

return 0;
}

1 个答案:

答案 0 :(得分:2)

std::pair<U,V>本身并未提供任何订购功能。如果您不想自己编写任何其他代码(例如条件std::swap),那么您最接近的就是使用std::minmax代替std::make_pair

#include <algorithm>

std::pair<int, int> myPair = std::minmax(5, 3);

默认情况下,std::minmax将使用小于运算符(<)来确定元素的顺序。它可以任意定制:

std::pair<int, int> a = std::minmax(5, 3, [](auto x, auto y){ return x*10 < y+20; });

std::pair<std::string, std::string> b = std::minmax("foo"s, "bar"s, std::greater<>{});