Giriş
C++11 ile geliyor.
at metodu, [] operator ile benzer. Bu metod aynı std::vector'de olduğu gibi eğer verilen anahtar değer mevcut değilse exception atar.
Metodun için şuna benzer. lower_bound ile >= koşulunu sağlayan bir anahtar aranılır. Böyle bir anahtar varsa belirtilen değer ve bulunan anahtarın eşit olup olmadıkları karşılaştırılır.
Returns a reference to the mapped value of the element identified with key k.If k does not match the key of any element in the container, the function throws an out_of_range exception.
mapped_type&
at(const key_type& __k)
{
iterator __i = lower_bound(__k);
if (__i == end() || key_comp()(__k, (*__i).first))
__throw_out_of_range(__N("map::at"));
return (*__i).second;
}
Örnek
Şöyle yaparız
std::map<int, int> test;
try {
test.at(10);
} catch(std::out_of_range& e) {
...
}
Hiç yorum yok:
Yorum Gönder