簡體   English   中英

為什么使用`std::map::find` 來檢查地圖是否有密鑰?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM