sort在pair 数组中的默认规则
时间: 2024-10-18 08:11:16 浏览: 15
C++ 关于STL中sort()对struct排序的方法
在`pair`数组(这里指C++的`std::pair`)中,`sort`函数的默认规则是依据`pair`的第一个元素(通常称为`first`)进行升序排序。如果两个`first`值相同,那么它会进一步比较第二个元素(即`second`),也是按照升序进行。这种排序行为是基于`<`运算符的,也就是说,当`first`小于另一个`pair`的`first`时返回`true`,反之则返回`false`。
例如,假设我们有一个`pair<int, string>`的数组:
```cpp
std::vector<std::pair<int, std::string>> pairs = {{5, "apple"}, {3, "banana"}, {5, "cherry"}};
```
默认情况下调用`sort(pairs.begin(), pairs.end())`,将会得到按`int`数值升序排列的数组:
```cpp
pairs = {{3, "banana"}, {5, "apple"}, {5, "cherry"}}
```
如果需要改变排序顺序,可以通过自定义一个`cmp`函数传递给`sort`,实现不同的排序规则。
阅读全文