std::find mit std::map verwenden?
-
Sers,
ich möchste in einer Map nich nach dem key sondern nach nem Wert suchen? Da dachte ich an nen functor, aber ich hab nix gescheits gefunden in Google.
#include<map> #include<algorithm> std::map<UINT,foo*> MyMap; . . . foo *x= ...; std::map<UINT,foo*>::iterator itFind= std::find(MyMap.begin(),MyMap.end(),x);HILFE

-
http://www.cplusplus.com/reference/algorithm/sort.html
Hier hast du ein Beispiel, das mit Funktoren funktioniert.
Das kannst du gleich auch bei find machen.
EDIT:
Musst dann einfach anstatt int eine Referenz auf foo, oder sonst was übergeben.
-
Da gehts aber um sort nich um find
muss ich vll. bind2nd bzw. bind1st verwenden
struct FINDER{ bool operator()( ??????) }
-
fucntor?? schrieb:
Da gehts aber um sort nich um find
muss ich vll. bind2nd bzw. bind1st verwenden
struct FINDER{ bool operator()( ??????) }Zeig mal her, was du genau hast, dann können wir dir helfen.
-
struct finder { finder(int val) : val(val){}; bool operator()(const std::pair<float, int>& p) { return (p.second == val); } private: int val; }; //... std::map<float,int> map; //... std::map<float,int>::iterator = std::find_if(map.begin(), map.end(), finder(10)); //...
-
OH super, danke
jetzt hab ich das mit den functoren auch verstanden;)