簡體   English   中英

std::unordered_map 插入提示

[英]std::unordered_map insert with hint

std::map有一個insert方法,它接受一個“提示”迭代器,如果提示正確,它將把插入時間從 log(n) 減少到常數時間。 很明顯這是如何工作的,因為容器可以確保新添加的項目具有小於提示的鍵並且具有大於提示之前的項目的鍵。 否則提示是錯誤的,它執行正常插入。

std::unordered_map也有一個類似的帶有提示功能的insert 如果有的話,提示有什么作用? 對我來說如何使用另一個“提示”迭代器來加速哈希映射插入並不明顯。

如果使用它,什么是適當的“提示”。 std::map ,通常通過在地圖上調用lower_bound來找到提示。

這是一個接口兼容性問題。 基本上,設計是考慮到std::map的接口完成的。

換句話說,對於std::unordered_map它沒有區別提供或不提供提示。

來自此處評論的其他信息:

接口兼容性非常重要,因為能夠在mapunordered_map之間快速/輕松地切換提供了無痛轉換的寶貴靈活性,因為性能通常是選擇其中之一的決定性因素。

提示允許無序映射實現首先進行值比較以查看提示是否有效。 這避免了必須執行可能比比較操作更昂貴的散列函數。

暫無
暫無

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

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