簡體   English   中英

為快速查找而優化的有序關聯數據結構?

[英]ordered associative data structure optimised for fast lookup?

我正在尋找為快速查找而優化的std::map -esque數據結構。

一種方法是利用排序的std::vector作為基礎存儲來實現map的接口-由於隨機訪問迭代器和緩存局部性,這將提供快速的binary_search

但是,這聽起來像是在重新發明輪子。 這樣的東西肯定已經存在了嗎?

是否存在使用std :: vector進行存儲的開源有序關聯數據結構?

編輯:

對於建議使用std :: map的評論,請在此處閱讀: http : //lafstern.org/matt/col1.pdf

Boost.Containers庫有一個有序的地圖容器,其存儲由名為boost::flat_map的連續數組支持。 但是請注意,漸進的理論復雜度與標准map (對數)相同,而更好的選擇取決於用例的許多細節 :插入與查找,迭代,迭代器無效要求。

由於接口非常相似,因此應該有可能通過typedef相互替換,並描述相對性能,這是您絕對必須做的。

是否存在使用std :: vector進行存儲的開源有序關聯數據結構?

如何維護排序的vector 這樣可以快速查找(二進制搜索,無需遍歷指針)。

暫無
暫無

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

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