SORU
28 Kasım 2008, Cuma


STL haritalar, harita kullanmak daha iyi olur::Ekle daha []?

Bir süre önce, STL değerleri ekleme hakkında bir meslektaşım maps ile bir tartışma vardı. Tercih ettim map[key] = value; doğal bir his ve net tercih etti oysa okumak çünkü map.insert(std::make_pair(key, value))

Ben sadece sordum ve ikimiz de Ekle daha iyi olur nedenini hatırlayamıyorum, ama verimliliği gibi teknik bir neden yoktu, sadece daha çok stil bir tercih değildi eminim. SGI STL reference sadece "açık konuşmak gerekirse, bu üye işlevi gereksiz: kolaylık için var." diyor

Bunu birisi bana neden söyleyebilir, ya da sadece bir rüya mı?

CEVAP
29 Kasım 2008, CUMARTESİ


Yazarken

map[key] = value;

sen olmadığını anlamanın yolu yokyerini aldıkey, valueyarattıvalue key yeni.

map::insert() sadece oluşturur:

using std::cout; using std::endl;
typedef std::map<int, std::string> MyMap;
MyMap map;
// ...
std::pair<MyMap::iterator, bool> res = map.insert(std::make_pair(key,value));
if ( ! res.second ) {
    cout << "key " <<  key << " already exists "
         << " with value " << (res.first)->second << endl;
} else {
    cout << "created key " << key << " with value " << value << endl;
}

Uygulamalarım çoğu için, ben genellikle eğer oluşturma veya değiştirme olmam önemli değil, map[key] = value okumak için daha kolay kullanıyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • dcigs

    dcigs

    9 EYLÜL 2006
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008