如何对已按次要条件排序的数组进行排序?

How can I sort an array that is already sorted by a secondary criteria?

假设我有一个对象数组。每个对象包含一个整数和一个字符串。

这些对象已按字母顺序排序,没有两个对象包含相同的字符串。

我想对数组进行排序,使它们按从最低到最高整数的顺序排列,对于具有相同整数的对象,我想按字母顺序对它们进行排序

例如我开始于:

[1 "ab"],[2 "bc"],[1 "cd"],[3 "de"],[2 "ef"]

应该排序为:

[1 "ab"],[1 "cd"],[2 "bc"],[2 "ef"],[3 "de"]

除了使用比较器排序函数中内置的语言进行排序之外,是否还有更快的方法? (这里我提供了比较功能)

可能有,但是
我觉得比较功能比什么都好

bool comp(obj a, obj b)
{
    if(a.num==b.num)return a.str < b.str;
    return a.num<b.num;
}

调用 comp 函数 sort(arr, arr+size, comp)