ich eine Karte haben, die Mit lower_bound auf verschachtelte Karte
map<string , map<int,int>>
die Zeichenfolge enthält Namen eines Studenten, die verschachtelte Karte enthält ID als Schlüssel und das Alter als Wert wie
aussieht. Wenn ich die Karte drucke, werden die Werte wie gewünscht ausgedruckt.Allerdings möchte ich einen Studenten mit einer bestimmten ID und niedriger finden. Ich habe versucht, mit lower_bound mit:
for(auto &x : class){
auto it = x.second.upper_bound(some_number);
for(; it != x .second.begin() ; --it){
cout << x.first << " = " << << it -> first << " " <<it -> second << endl;
}
}
Diese in der Tat druckt richtige Namen von Studenten, aber ihre IDs und Alter sind nur Nullen oder Zufallszahlen, was dieses Verhalten verursacht? Es funktioniert, wenn ich es nur drucke.
Ich habe versucht, darüber auf cpp Kartenreferenz herauszufinden, aber nichts gefunden.
Wäre es möglich, zu bekommen [Minimal, Complete, und prüfbare Beispiel] (http://stackoverflow.com/help/mcve) – JVApen
Das ist eine seltsame Datenstruktur. Ein Student, identifiziert durch seinen oder ihren Namen, kann mehrere IDs und Alter haben? –
Wie haben Sie es geschafft, eine Karte namens 'class' zu deklarieren? –