簡體   English   中英

為什么 C++ std::unordered_map 從 emplace / find 返回一個迭代器?

[英]Why does the C++ std::unordered_map returning an iterator from emplace / find?

我理解為什么 unordered_map 有一個迭代器(begin() 和 end()),但我看不到從 find / emplace 返回迭代器的值是什么。

我無法想象一個用例,您希望在給定的鍵而不是開始/結束處啟動迭代器(因為好的 hash function 應該使表中的 Z4757FE07FD492A8BE0EA6A7D60D63 中的鍵是任意的)。

替代方案; 僅返回值、對值的引用或鍵和值對涵蓋了我可以想象的所有用例,避免了創建迭代器的不必要工作,並且在使用它訪問底層對/值時可能導致額外的 memory 延遲.

如果您想刪除該項目怎么辦? 如果要提取或合並它怎么辦? 如果你想用它作為就位的提示怎么辦?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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