Sắp xếp bằng bộ so sánh
Một vectơ (giống như một mảng)  có thể được sắp xếp bằng hàm sort(). Nhưng hàm này sắp xếp theo thứ tự tăng dần theo mặc định. Để sắp xếp một mảng theo một thứ tự khác, bạn cần sử dụng cái gọi là bộ so sánh  - một hàm thiết lập thứ tự sắp xếp bằng cách so sánh hai đối tượng .
 
Ví dụ
Một ví dụ về bộ so sánh sắp xếp các phần tử của một mảng theo thứ tự tăng dần. bool cmp(int thứ nhất, int thứ hai) { quay lại đầu tiên < thứ hai; }
và sắp xếp vectơ A bằng bộ so sánh đã tạo: sắp xếp(A.begin(), A.end(), cmp); Nghĩ về trình vòng lặp

Theo điều kiện của vấn đề, rõ ràng là cần phải áp dụng sắp xếp stable (ổn định), do đó, thay vì sắp xếp, nên sử dụng stable_sort.

bạn cũng có thể chỉ định một đối tượng hàm làm bộ so sánh mà bạn có thể tạo trước khi gọi hàm sắp xếp.
Ví dụ:
cấu trúc {
        bool toán tử()(int a, int b) const
        {
            return a < b;
        }
    }cmp;