Problem

1/9

Listen: Start

Theory Click to read/hide

Durch das Studium der Massen sahen wir, dass der Index des Massenelements nur eine ganze Zahl sein könnte, aber es ist nicht immer bequem.
Um dieses Problem zu lösen, gibt es einen zugehörigen Körper, wo alle Schlüssel alles sein können.
Der häufigste Fall ist, wenn das Wort der Index (Taste) ist, so können wir leicht die Herausforderungen der Berechnung der Anzahl der Wörter im gegebenen Text erfüllen.

In C+++, zwei Arten von Mitarbeitern: Karte und Multimap. Sie sind anders, weil die Schlüssel einzigartig sind und Multimap wiederholt werden kann.

Asymptoics:
Suche, Box und Entsorgung für O(logn).

Sehen Sie sich die Karte an:

Für die Nutzung der Karte müssen Sie sie zuerst verbinden:
HTML generiert mit Hilite. ich
#include verbal

Beispiel einer Karte mit einer Schlüsselzeile und einer ganzen Zahl:
HTML generiert mit Hilite. ich
Karte/String, ination mymap;

Hauptakteure:
leer() - gibt die Wahrheit zurück, wenn die Größe des Behälters gleich 0 ist;
Größe() - die Anzahl der Elemente zurücksetzen;
max_size() ist die maximal mögliche Größe des Behälters.
count(key) ist die Anzahl der Komponenten des entsprechenden Schlüssels. für Klassenkartenwert 1 oder 0;
find(key) ist der Terator für das erste Element mit dem Schlüssel;
Lower_bound(key) ist der Terator für das erste Element, dessen Schlüssel größer oder gleich diesem Schlüssel ist;
top_bound(key) ist der Terator für das erste Element, dessen Schlüssel größer ist als der angegebene Schlüssel;
equi_range(key) ist der Bereich der Elemente, deren Schlüssel gleich dem Schlüssel ist;
[] - Schlüsselindexierung.
Insert(el) - Feld des Elements, seine Position zurück;
Insert(beg,end) - Feld der Elemente aus dem angegebenen Bereich;
erase(el) - dieses Element löschen;
erase(beg) - das Element in dieser Position löschen;
erase(beg,end) - das Element aus dem angegebenen Bereich entfernen;
clear() - alle Elemente löschen.

Achten Sie auf die Anzahl:
Die Existenz eines Index auf diese Weise kann nicht überprüft werden:

Wenn( mymap["one]
Es wird Ihnen einen automatischen Aufbau eines Schlüsselelements geben. Also müssen wir das überprüfen:

Wenn( mymap.count("one)

Erhöhung des Schlüssels (Wort) "ein":
HTML generiert mit Hilite. ich
mymap."Eins."!++;


Der Iterator kann verwendet werden, um den Inhalt der Karte zu deaktivieren, der den Zugriff auf die Elemente der Masse ermöglicht, ohne die Beschreibungen der aggregierten Objekte zu verwenden:

HTML generiert mit Hilite. ich
Karte/String, in:iterator es;

für (seufzt) = mymap.begin(); es ! = mymap.end(); ++es)
Cout TYP es- Kategorieerste TYP  TYP es- Kategoriezweiter TYP Nein ';

Wo:
begin() - der Terator für das erste Element,
End() der Terator für das Element nach dem letzten,
zuerst - Schlüsselindikator
zweite - Wertindikator

oder Auto (C++ 11):

HTML generiert mit Hilite. ich
für(seufzt) Auto" Kv : Mymap
Cout TYP kv.first TYP ? TYP kv.Sekunde TYP Endl;



Problem

Konstruieren Sie ein alphabetisch-häufiges Wörterbuch: Eine Liste von Wörtern in alphabetischer Reihenfolge, auf der rechten Seite jedes Wortes sollte angegeben werden, wie oft es in der Quelldatei vorkommt. Das Zeichen für das Ende des Textes ist "END!". Die Reihenfolge der Ausgabe von Wörtern spielt keine Rolle.
 
Eingabe Ausgabe
Iss noch diese weichen französischen Brötchen END! Iss 1
noch 1
diese 1
weiche 1
französisch 1
brötchen 1