[英]std::unordered_map insert with hint
std::map
有一個insert
方法,它接受一個“提示”迭代器,如果提示正確,它將把插入時間從 log(n) 減少到常數時間。 很明顯這是如何工作的,因為容器可以確保新添加的項目具有小於提示的鍵並且具有大於提示之前的項目的鍵。 否則提示是錯誤的,它執行正常插入。
std::unordered_map
也有一個類似的帶有提示功能的insert
。 如果有的話,提示有什么作用? 對我來說如何使用另一個“提示”迭代器來加速哈希映射插入並不明顯。
如果使用它,什么是適當的“提示”。 在std::map
,通常通過在地圖上調用lower_bound
來找到提示。
這是一個接口兼容性問題。 基本上,設計是考慮到std::map
的接口完成的。
換句話說,對於std::unordered_map
它沒有區別提供或不提供提示。
來自此處評論的其他信息:
接口兼容性非常重要,因為能夠在map
和unordered_map
之間快速/輕松地切換提供了無痛轉換的寶貴靈活性,因為性能通常是選擇其中之一的決定性因素。
提示允許無序映射實現首先進行值比較以查看提示是否有效。 這避免了必須執行可能比比較操作更昂貴的散列函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.