Insert-paar als map-Wert
typedef pair<unsigned char, unsigned char> pair_k;
map<unsigned char, pair_k> mapping;
Wird so genutzt werden:
mapping[100] = make_pair(10,10);
Frage ist:
- Ist das erlaubt? Syntaxically, es fühlt sich gut.
- Würde dieser Zugriff als array im Gegensatz zu einer Karte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht ok für mich. Aber beachten Sie, dass dies nicht array-Zugriff; es sieht aus wie es, weil
std::map
überlastungenoperator[]
. Wenn Siemapping.size()
danach finden Sie, dass es1
.Std::map
operator[]
liefert eine Referenz zum map-element identifiziert, die von 100 (key), die dann überschrieben durch das paar kehrte von std::make_pair(10,10).Ich würde vorschlagen:
Den Aufruf einfügen hat den Vorteil, Zugriff auf die Karte nur einmal.
Dies ist ein perfekt gültiges C++ - code nach der Norm daher ist es erlaubt. Es greift auf die Karte als Karte, d.h. die Wert 100 zugeordnet ist, um das paar
(10,10)
Warum versuchst du es nicht?
*map*
über seine Tiefgestelltoperator
. Es ist nicht der array Zugriff verwendet werden.