看来我可以排序 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/