2013-10-03 4 views
14

STL newbie Frage unterer Grenze:Suche eine Karte mit oberer Schranke und

Zu Funktionen std :: map :: upper_bound und std :: map :: lower_bound gilt es, einen Schlüssel zu geben, die in nicht tatsächlich vorhanden ist die Karte?

Beispiel

std::map<int,int> intmap; 
std::map<int,int>::iterator it1,it2; 

intmap[1]=10; 
intmap[2]=20; 
intmap[4]=40; 
intmap[5]=50; 

it1=intmap.lower_bound (3); // Is this valid? 
it2=intmap.upper_bound (3); // Is this valid? 

Dank ...

+6

Ja nutzen könnten. (15 Zeichen) – kennytm

+0

Ich werde als Antwort akzeptieren, wenn Sie dies posten werden. – NeonGlow

+0

Billz gab eine bessere Erklärung dazu. – kennytm

Antwort

21

Ja, sie sind gültig beide.

map::lower_bound gibt einen Iterator zurück, der auf das erste Element verweist, das nicht kleiner als der Schlüssel ist.

map::upper_bound gibt einen Iterator zurück, der auf das erste Element verweist, das größer als der Schlüssel ist.

intmap[1]=10; 
intmap[2]=20; 
intmap[4]=40; // <<---both lower_bound(3)/upper_bound(3) will points to here 
intmap[5]=50; 

lower_bound/upper_bound Rückkehr der Position, wo Wert erhalten eingeführt würde.

Hinweis: Wenn Sie den Wert Schlüssel überprüfen wollen, ist Karte oder nicht, Sie std::map::find

Verwandte Themen