std::string jako key w unordered_map

0

Witam. Tworzę unordered map jako:

unordered_map<std::string, MojaKlasa> * x = new unordered_map<std::string, MojaKlasa>() 

dodaje do tego kilka obiektów:

 x->insert({"a", X}) 

i teraz próbuje zrobić find tej mapie, ale ciągle zwraca mi 0x0.

 x->find("a")

Powinienem napisać swój hash i predykat porównujący?

0

Po pierwsze bez sensu trzymać wskaźnik na mapę.
Po drugie, chrzani Waść: http://ideone.com/zOyFJe

#include <iostream>
#include <unordered_map>
using namespace std;

struct MojaKlasa
  {
  	int x;
  	MojaKlasa(int x=666):x(x) {}
  };

int main()
  {
    {
     unordered_map<string,MojaKlasa> x;
     x.insert({"a",MojaKlasa(65)});
     if(x.find("a")!=x.end()) cout<<"znaleziono"<<endl;
     else cout<<"coś jest nie tak"<<endl;
    }
    {
     unordered_map<string,MojaKlasa> *x=new unordered_map<string,MojaKlasa>();
     x->insert({"a",MojaKlasa(65)});
     if(x->find("a")!=x->end()) cout<<"znaleziono"<<endl;
     else cout<<"coś jest nie tak"<<endl;
    }
   return 0;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1