std::map<std::string, int> m;
// Can I make assumption that m["NoSuchKey"] will return 0?
std::cout << m["NoSuchKey"] << std::endl;
2
A
回答
9
3
是。如果未找到映射鍵,則會插入默認值。
具體來說,operator[]
is understood as:
(*((m.insert(value_type(k, data_type()))).first)).second
翻譯成你的情況,m["NoSuchKey"]
意味着
std::pair<std::string, int> pair_to_insert ("NoSuchKey", 0);
// default value of int is 0.
std::pair<std::map<std::string, int>::iterator, bool>
insert_res = m.insert(value_to_insert);
std::map<std::string, int>::iterator iter_of_inserted_pair = insert_res.first;
std::pair<std::string, int> inserted_pair = *iter_of_inserted_pair;
int inserted_value = inserted_pair.second;
return inserted_value;
尤其m.insert
如果鍵已經存在,返回舊鍵值對,而新的鍵 - 值對如果不是。因此,如果密鑰已存在,您將獲得預期值,如果不存在,則會獲得0(默認值)。
相關問題
- 1. 我可以在BFS和DFS中做出假設嗎?
- 2. 我們可以找出Paperclip下載完成的時間嗎?
- 3. 我可以在PlacePicker.IntentBuilder中設置LatLngObject以在地圖中看到該地點嗎?
- 4. 我可以爲主鍵設置ignore_dup_key嗎?
- 5. 沒有地圖鍵有我可以指向的地址嗎?
- 6. 貓鼬模型,我可以做到嗎?
- 7. JPA和表視圖。可以做到嗎?
- 8. 當找不到記錄時,IBM DB2可以返回0(零)嗎?
- 9. 我可以使用python做實時adb logcat關鍵字查找嗎?
- 10. 果園可以做到嗎?
- 11. 我可以假設大多數Android設備都有WiFi嗎?
- 12. NLP - 我可以找出誰是「它」嗎?
- 13. 我可以爲我的js文件假設gzip壓縮嗎?
- 14. 當php會話過期時,可以設置memcached expire鍵嗎?
- 15. 當我做modprobe時找不到模塊
- 16. 當我使用Finch播放音頻時,我真的可以做所有OpenAL可以做的事情嗎?
- 17. 我可以緩存Apple地圖嗎?
- 18. 當heroku顯示以下日誌時,可以做些什麼?
- 19. 我可以假設安裝了bash
- 20. 當顯示警告時,我可以顯示鍵盤嗎?
- 21. 我可以定義一個鍵是結構的地圖嗎?
- 22. 我可以修改通過鍵集的地圖嗎
- 23. 我們可以找到iDevice模型嗎?
- 24. 我可以找出下一個使用的auto_increment嗎?
- 25. 我在哪裏可以找到我可以疊加點的地球圖片?
- 26. 當使用SwipeRefreshLayout時,我可以在向下滑動時看到以下片段(
- 27. 我可以假設NSObject是Cocoa-touch中的一種CFType嗎?
- 28. 我可以假設SettableFuture作爲光纖的類星體嗎?
- 29. 我可以爲BufferReader設置超時嗎?
- 30. 我可以通過Oracle ALL_TAB_COLS視圖找出列是否爲主鍵嗎?
相關,也許重複:http://stackoverflow.com/questions/2346481/an-initial-value-assumption-about-map-in-c/2346494 – GManNickG
複製到精確的鍵/值類型。 – MSalters