Ich habe eine std::list< std::pair<std::string,double> >
, von der ich weiß, dass sie nach der std::string element
sortiert ist.Wie man eine sortierte std :: list von std :: pair in eine std :: map konvertiert
Seit Ich mag würde eine Menge std::find_if
basierend auf dem std::string
Element tun, glaube ich, ein std::map<string,double,MyOwnBinaryPredicate>
mit lower_bound
und upper_bound
würde mehr ausreichend sein.
Tatsache ist, dass ich insert
Elemente in der std::map
in einer effizienten Weise will. Daher möchte ich einen zusätzlichen Iterator verwenden, um die insert
schneller zu machen.
Ich glaube, der einfachste Weg, ein const_reverse_iterator
zu gehen durch die std::list
nutzen würde und die begin()
der std::map
zu verwenden.
Würdest du es so machen, oder ist es eine schlechte Idee?
Danke!
nicht [C++] auf den Titel setzen Sie. Dafür sind Tags da. – NullUserException
Mit den Antworten von grddev und Luther Blissett habe ich ungefähr dieselben Leistungen wie bei meinem ersten Vorschlag (mit 'begin()', nicht 'end()'). Beide sind jedoch prägnant. Ich akzeptiere grddev's Antwort für seine Einfachheit, aber ich denke an den 'std :: inserter'. Danke euch allen! – Wok