10 Aralık 2020 Perşembe

std::map.at metodu

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.

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.
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.
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