将第一向量的成对向量排序,然后用C++中的第二元素排序?

将第一向量的成对向量排序,然后用C++中的第二元素排序?,c++,sorting,vector,std-pair,C++,Sorting,Vector,Std Pair,如果我有一个向量数据类型,可以用什么方法按对中的第一个元素排序,如果第一个元素相等,再按第二个元素排序?例如,可能1,10,3,3,7,13,7,16,8,1,8,2,15,2等。默认情况下,对按第一个元素进行比较,然后按第二个元素进行比较。因此,如果您不关心在第一个元素比较相等时保留顺序,那么您可以使用std::sort: 按字典顺序比较对,首先比较第一个元素,如果第一个元素相等,则比较第二个元素 使用std::sort这种方式使用std::pair的运算符std::sort和自定义比较器呃

如果我有一个向量数据类型,可以用什么方法按对中的第一个元素排序,如果第一个元素相等,再按第二个元素排序?例如,可能1,10,3,3,7,13,7,16,8,1,8,2,15,2等。默认情况下,对按第一个元素进行比较,然后按第二个元素进行比较。因此,如果您不关心在第一个元素比较相等时保留顺序,那么您可以使用std::sort:

按字典顺序比较对,首先比较第一个元素,如果第一个元素相等,则比较第二个元素


使用std::sort这种方式使用std::pair的运算符std::sort和自定义比较器呃,老兄,如果第一个相等,你想按第二个排序,但是你在对我的答案的评论中说了相反的话。你最初对我的问题发表了评论:有没有办法保持第二个的顺序?那么,你的问题到底是什么?这是我已经在使用的,但它似乎没有以什么方式工作?最大的警告是,如果第一个元素相等,它将按第二个元素排序,而不是保留它们的原始顺序。@AgainstASicilian您可能正在寻找std::stable_sort?@nneonneo我确实关心保留顺序though@AgainstASicilian不要将所有重要信息都放在评论中,把它包括在你的原始问题中。当第一个相等时,有没有办法增加第二个的顺序?
std::sort(v.begin(), v.end());