So habe ich diese Karte mÜbertragung Karte <string, Paar> zum Vektor
typedef pair<int,int>p;
map<string, p> m;
Es hält alle Worte in einer Textdatei, und die erste int in dem Paar ist die Frequenz des Wortes und Die zweite ist die Position des ersten Zeichens in der Textdatei. Diese sind alle berechnet und die Karte funktioniert gut.
JEDOCH
Ich brauche sich diese Worte zu drucken, nach Häufigkeit sortiert in absteigender Reihenfolge. Ich brauche den Positionszähler, denn wenn zwei Wörter die gleiche Häufigkeit haben, sollte der erste in der Liste an erster Stelle stehen.
Wie übertrage ich diese Karte in einen Vektor?
Ich versuchte
copy(m.begin(), m.end(), back_inserter(wordList));
ohne Erfolg
++++++++++++++++++++++++++++++ +++++++++++++++++++++++
Okay also ich habe wordList zu vector<pair<string, pair<int, int> > >
geändert und meine Kopie funktioniert jetzt. Danke Jungs
Was 'wordlist' ist? Erhalten Sie einen Kompilierungsfehler oder Laufzeitprobleme? Welche Fehler haben Sie? Wir können es erraten, aber es wäre besser, wenn Sie es uns sagen würden. – 1201ProgramAlarm
Es ist bereits lexikografisch in der Karte sortiert, wenn man es in einen Vektor verschiebt, ändert sich die Reihenfolge nicht auf magische Weise. – krzaq
Diese Kopie funktioniert, wenn 'wordList' ein' std :: vector>> 'ist. Andernfalls müssen Sie etwas arbeiten, um die Daten in der Karte in ein Formular zu mappen, das im Vektor gespeichert werden kann. –
Peter