// ── ABOUT ────────────────────────────────────────────────────────
// sort(start, end) → sorts [start, end) O(n log n)
// sort(start, end, cmp) → custom comparator
// ── ARRAY ────────────────────────────────────────────────────────
int arr[] = {4, 5, 2, 25, 7, 8};
int n = 6;
sort(arr, arr + n); // full array
sort(arr + 2, arr + n); // from index 2 to end
// ── VECTOR ───────────────────────────────────────────────────────
vector<int> v = {4, 5, 2, 1, 7, 9};
sort(v.begin(), v.end()); // ascending
sort(v.rbegin(), v.rend()); // descending
// ── PAIR (default) ───────────────────────────────────────────────
vector<pair<int,int>> vp = {{4,3}, {5,5}, {5,3}, {25,6}, {5,9}, {8,5}};
sort(vp.begin(), vp.end()); // by first → ties by second
// {4,3} {5,3} {5,5} {5,9} {8,5} {25,6}
// ── CUSTOM COMPARATOR (function) ─────────────────────────────────
bool cmp(pair<int,int> a, pair<int,int> b) {
if (a.first != b.first)
return a.first < b.first; // sort by first ascending
return a.second > b.second; // ties → second descending
}
sort(vp.begin(), vp.end(), cmp);
// ── CUSTOM COMPARATOR (lambda) ────────────────────────────────────
sort(vp.begin(), vp.end(), [](auto &a, auto &b) {
return a.second < b.second; // sort by second ascending
});