Since both set and map are ordered containers, can the min and the max be found in 0(1) time for std::map like in std::set ?
// for std::set
// std::set<int> s;
auto min = *s.begin();
auto max = *s.rbegin();
How do I obtain the max and min in O(1) from a std::map ? Other questions here seem to suggest to iterate through the map, but can't we use the ordered properlt of std::map to obtain the result faster ?
Dereference first from the iterator for the key, like this:
// for std::map<int,string> s
auto minKey = s.begin()->first;
auto maxKey = s.rbegin()->first;
This works only for keys, not values, because maps are sorted only on their keys.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With