2013-10-03 13 views
14

STL newbie pytanie:wyszukiwania mapę z górną granicę i dolna granica

temat funkcji std :: map :: UPPER_BOUND i std :: map :: LOWER_BOUND jest to ważne, aby określić klucz, który nie jest rzeczywiście obecny w Mapa?

Przykład

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? 

Dzięki ...

+6

Tak. (15 znaków) – kennytm

+0

Przyjmę jako odpowiedź, jeśli opublikujesz to. – NeonGlow

+0

Billz dał lepsze wyjaśnienie na ten temat. – kennytm

Odpowiedz

21

Tak, obie są ważne.

map::lower_bound zwraca Iterator wskazujący na pierwszy element, który jest nie mniejszy niż klucz.

map::upper_bound zwraca iterator wskazujący na pierwszy element większy niż klucz.

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 powrót pozycja gdzie wartość dostanie włożona.

Uwaga: Jeśli chcesz, aby sprawdzić wartość klucza jest mapa lub nie, można użyć std::map::find

Powiązane problemy