Mit einem array als key in map C ++

Grundsätzlich, ich brauche, um zu finden, die alle übereinstimmenden Anagrammen zu Wort. Was ich Tat, war, mit einem array der Größe 26 für die Darstellung der Buchstaben in einem Wort.
Ex:
abcdefg={1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
aaaaaaa={7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

Dies ist, wie ich bin, erstellen Sie das array.

//stringtemp is a C++ string representing the word.
//letters is a size 26 int array representing all the letters in the string.
for(int i=0;i<stringtemp.length();i++)
{
    letters[stringtemp[i]-65]+=1;
}

Und das ist, wie ich die Speicherung der array in der Karte.

dictionary[letters].push_back(stringtemp);

So, mache ich etwas falsch oder ist dies nicht möglich in C++. In allen anderen Antworten, die ich gefunden haben, Sie schlug vor, mit einem Vektor als Schlüssel, aber das funktioniert nicht in meinem Fall(denke ich.)

  • Wie die Antworten unten zu reflektieren, eine C style array nicht kopieren, da man erwartet, dass es zu.
  • Wie die Definitionen von dictionary und letters helfen würde.
InformationsquelleAutor user1525047 | 2012-09-15
Schreibe einen Kommentar