std::string jako key w unordered_map

Odpowiedz Nowy wątek
Mały Młot
2015-12-29 19:42
Mały Młot
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?

Pozostało 580 znaków

2015-12-29 19:51

Rejestracja: 14 lat temu

Ostatnio: 3 dni temu

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;
  }

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2015-12-29 19:51

Pozostało 580 znaków

Odpowiedz

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