在我的代碼,我有一個std::map
看起來是這樣的:映射空指針值
std::map<std::string, A*> myMap;
其中A是我的自定義類之一。
當我訪問不通過operator[]
存在像這樣的地圖元素:
std::string s("hello");
A* pA = myMap[s];
我知道,一個新的元素與該鍵創建,但我想指針被初始化爲NULL。換句話說,如果myMap[s]
存在,應該返回一個有效的指針。如果沒有,我想在上面的代碼執行後,pA爲NULL。
默認情況下,如果myMap[s]
不退出,pA是否會包含垃圾?我怎樣才能讓它包含值NULL如果元素不退出?
如果密鑰在調用之前不存在,它將成爲nullptr。在這種情況下,這種自動插入的映射值是一個指針類型,它是值初始化的,每個標準的值初始化指針是零初始化的,這與nullptr是同義的。 IE瀏覽器。你可以免費得到它。 – WhozCraig 2013-02-26 03:23:14
downvoter照顧精心製作?我詳細解釋了我想要達到的目標,並在提供的情況下詢問了有關默認行爲的問題。 – user974967 2013-02-26 03:23:30
@ user974967該問題顯示沒有研究工作(即,您甚至沒有嘗試閱讀手冊)。 – melpomene 2013-02-26 03:25:16