Rui said:

Is there a pure STL way to get the <key, value> pair which has the minimum value of

the map? I've tried the following but it wasn't very successful.

<code>

std::map<size_t,float> distance;

// fill distance map

size_t minimum = min_element(distance.begin(), distance.end(),

distance.value_comp())->first;

</code>

What does it mean for "the <key, value> pair" to have "the minimum

value"? The map is sorted on its key. To get the pair with the minimal

key is to get '*begin()' (if the map is !empty()). Values do not

participate in sorting. The simplest way to find the element with the

minimal 'value' would be the linear search (iterating over the entire

map). It is, of course, O(N).

You could create another map essentially mirroring the first but with

inverse ordering of types. It has to be a multimap, of course, since

you can have duplicate 'float' in the first one. Then the other one

will keep itself sorted, and you can always extract the *begin() from it

(which should give you the minimal 'float').

V