[英]Why use `std::map::find` for checking if maps have a key?
我最近發現(不是通過研究,所以如果這是錯誤的,請告訴我,我會更正)以下方法有效:
std::map<T*, U*> map;
std::cout << map[key_that_is_not_in_map] << std::endl;
// OUTPUT:
// 0
但是很多人建議使用std::map::find(key_.....):= std::map::end()
。
后者是否有一些使它更安全的東西,還是第一個僅適用於指針鍵和值?
后者是否有一些使它更安全的東西,還是第一個僅適用於指針鍵和值?
是的,如果不存在密鑰, std::map::operator[]
執行插入。 而std::map::find
沒有。
從cppreference.com std::map::operator[]
返回對映射到與 key 等效的 key 的 value 的引用,如果這樣的 key 不存在,則執行插入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.