SORU
25 EYLÜL 2009, Cuma


Neden değil't [] STL Haritalar için sabit operatör?

Yapmacık örnek soru iyiliği için:

void MyClass::MyFunction( int x ) const
{
  std::cout << m_map[x] << std::endl
}

Bu yana derleme, yaramaz [] operatör olmayan inş.

O zamandan beri bu talihsiz, [] sözdizimi çok temiz görünüyor. Bunun yerine, böyle bir şey yapmak zorundayım:

void MyClass::MyFunction( int x ) const
{
  MyMap iter = m_map.find(x);
  std::cout << iter->second << std::endl
}

Bu beni hep rahatsız etti. Neden [] operatör olmayan sabit?

CEVAP
25 EYLÜL 2009, Cuma


std::map, operator[] Daha önce ortaya çıkmadığına diye kabın içine dizin değeri ekleyecektir. Küçük bir sezgisel olmayan bir şeydi, ama bu böyledir.

Başarısız ve varsayılan bir değer eklemek için izin alınması gerektiği için, operatör, konteynırın const bir örnek üzerinde kullanılabilir.

http://en.cppreference.com/w/cpp/container/map/operator_at

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • happyjpy

    happyjpy

    22 AĞUSTOS 2009
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013