I have a vector with pairs in it like so: vector<pair<int, string>> results; I want to sort the vector first by the first elements (the integers) in descending order. If the first elements are equal, I then want to sort by the second elements in ascending order (alphabetical since they are strings). How can I do this?