Tengo un std::list< std::pair<std::string,double> >
, que sé que está ordenado según el std::string element
.Cómo convertir un std :: list ordenado de std :: pair a un std :: map
Dado que me gustaría hacer un montón de std::find_if
basado en el elemento std::string
, creo que un std::map<string,double,MyOwnBinaryPredicate>
con lower_bound
y upper_bound
sería más adecuada.
El hecho es que quiero insert
elementos en el std::map
de una manera eficiente. Así que quiero usar un iterador adicional para hacer que el insert
sea más rápido.
Creo que la manera más fácil sería utilizar un const_reverse_iterator
que pasar por el std::list
y utilizar el begin()
del std::map
.
¿Lo harías de esta manera, o es una mala idea?
Gracias!
No ponga [C++] en el título. Para eso son las etiquetas. – NullUserException
Con las respuestas proporcionadas por grddev y Luther Blissett, tengo las mismas prestaciones que con mi sugerencia inicial (usando 'begin()', not 'end()'). Sin embargo, ambos son concisos. Acepto la respuesta de grddev por su simplicidad, pero tengo en cuenta el 'std :: inserter'. ¡Gracias a todos! – Wok