考慮到在主內存中搜索時緩存和數據局部性的積極影響,我傾向於使用std::vector<>
和std::pair<>
類似的鍵值項目,並對兩者執行線性搜索,如果我知道鍵值項目的總數將會永遠不要「太大」來嚴重影響性能。何時選擇關鍵值數據的std :: map over std :: map?
最近我一直在很多情況下我事先知道,我將有鍵值項的數額巨大,因此都選擇了std::map<>
從此開始。
我想知道如何在上述情況下爲適當的容器做出決定。
你
- 始終使用
std::vector<>
(或類似)? - 始終使用
std::map<>
(或類似)? - 對於產品數量範圍內的哪一個比另一個更可取?
- 東西完全不同嗎?
謝謝!
@Nemanja:因爲我通常在一個嚴重癱瘓的Windows CE/Mobile環境中工作,在這個環境中,TR1太費時,至少說要集成。 – 2010-04-27 15:40:14