我使用通過索引引用列表中的事物的協議。存儲這些東西的自然方式是在一個向量中,所以我可以隨時訪問。但就本質而言,在矢量的開始處有很多擺弄,包括插入和刪除。指數越低,就越麻煩。 結果是很多複製向量的其餘部分。存儲反轉數據的向量
我想以相反的方式存儲事物,在更高的向量索引處(即更高的地址)降低協議索引,儘量減少內容移動,但仍然能夠通過協議透明地隨機訪問元素,指數。除了指針算術和相似之外,理想的容器將是std :: vector的一個簡單替換。我仍然想要指針算術,但可以自己處理相反的順序。
周圍有這樣的課嗎?
也許一些推動容器我找不到或一些晦澀的政策?
編輯:實際上,行程我,我可以用一種載體,以前指數0
以及指數length-1
後保留空間。 Deque不是像我想的那樣構建的,而是使用大塊內存來防止指針算術。
你可以使用類似'deque'的東西。 – chris
'deque'在容器的開始處提供優化的插入,如果這是您需要的唯一類型 –
「map」無法正常工作嗎?這是恆定的時間,雖然比向量慢,但如果你使用「類似數組」的密鑰,並且你解決了分配問題。 –