c++ - std::pair 的顺序是否明确?

看来我可以排序 std::vector<std::pair<int, std::string>> ,它将根据 int 值进行排序。这是一个定义明确的事情吗?

是否 std::pair是否有基于其元素的默认排序?

最佳答案

std::pair 使用字典比较:它将根据第一个元素进行比较。如果第一个元素的值相等,则会根据第二个元素进行比较。

C++03 标准(第 20.2.2 节)中的定义是:

template <class T1, class T2>
bool operator<(const pair<T1, T2>& x, const pair<T1, T2>& y);

Returns: x.first < y.first || (!(y.first < x.first) && x.second < y.second).

关于c++ - std::pair<int, std::string> 的顺序是否明确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2819245/

相关文章:

c++ - C 和 C++ 中的 1LL 或 2LL 是什么?

c++ - 最快的素数测试算法

c++ - 如何让我的类(class)成为 google-test 类(class)的 friend

c++ - 如何强制 gcc 链接未使用的静态库

c++ - 我收到错误 "invalid use of incomplete type ' 类映射'

c++ - (为什么)移动构造函数或移动赋值运算符应该清除它的参数吗?

c++ - VS2012 在 64 位目标中 vector 的性能不佳

c++ - 计算机如何进行浮点运算?

c++ - 如何设置 QMainWindow 标题

c++ - std::map 如何提供常量 size() 操作?