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
Yazarken
map[key] = value;
sen olmadığını anlamanın yolu yokyerini aldıkey
, value
yarattı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.
Ne zaman Dize kullanmak daha iyi olur....
2 tarafından bir tamsayı bölme için ku...
Hangi node.js eş zamanlı görevler için...
Neden bağlantılı liste işaretçileri ku...
Ne daha etkili olur: Sözlük TryGetValu...