How cal I use std::map container with key value in descending order.
As an example, if insert the following items:
[2 , 5]
[1 , 34]
[3 , 67]
They will be ordered in the map like:
position 0: [1, 34]
position 1: [2, 5]
position 2: [3, 67]
I can iterate through the map reversely, but suppose the next time I am inserting [-1 , 60]. Will it be placed at the first position?
std::map
is already sorted, so you only need to traverse the map using areverse_iterator
.A map, however, is not an array. There's no such thing as "the n-th position" in a map. (
std::map
is most commonly implemented using some sort of binary search tree.) If you absolutely, inevitably need to specify order manually, then use astd::vector<std::pair>
.Use a custom comparator when the default order doesn't do it for you.
You pass it as the third template parameter ( that's normally defaulted to
std::less<KeyType>
).In your case, you can use
std::greater
:Example code:
Resulting output: