Ich bin derzeit auf der Suche nach einer Datenstruktur, die ähnlich wie in C++ zugeordnet ist.C++ - Karte, finde das erste Element, das weniger als Schlüssel ist
Ich bin auf der Suche nach einer Funktion, die erste Element zurückgeben kann, die sofort weniger als eine bestimmte Anzahl ist. zum Beispiel:
map<int,int> m;
m[1] ++;
m[2] ++;
m[4] ++;
m[5] ++;
find_first_element_less_than(3) ----> return 2;
m.upper_bound(3) ---> return 4;
Ich habe an der lower_bound
Funktion gesucht. Es sagt jedoch, dass es das erste Element nicht weniger als Schlüssel zurückgibt. In diesem Fall gibt lower_bound (3) 4 zurück, was ich nicht möchte.
Ich frage mich, ob es irgendeine Datenstruktur in C++ gibt, die das für mich tun kann?
AKTUALISIERUNG:
Kann ich auto it = m.lower_bound(3); if (it != m.begin()) it--;
tun ??
Dies ist unklar. Willst du das * last * Element finden, dessen Schlüssel kleiner als das Argument ist? (Und möchten Sie, dass die Funktion den Wert oder den Schlüssel oder einen Iterator zurückgibt, oder was?) – Beta