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

  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • humanHardDrive

    humanHardDri

    16 Mart 2011
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010