我搜索的東西是std :: vector但沒有大的開銷和多一點比std :: array,因爲與std :: array我沒有存儲的大小(它只能從類型本身知道)。恆定數據與編譯時初始化的容器類
我想要什麼來實現的:寫
與「動態」的容器是這樣的:
std::map< int, std::vector< std::pair<int,int>>>;
我在運行時不需要修改,但我需要在運行時的大小信息。用std :: array替換std :: vector無法工作,因爲數組必須是所有映射條目的相同大小,這不是我所需要的。
我只!想問一下是否已經有可用的實現。如果答案僅僅是「否」,則不需要建議如何完成這項工作。我只想不再重新發明輪子:-)
背景:我可以在我的小avr控制器上使用stl,但開銷是「有點」到高。因此,我尋找一個符合編譯時間常量表示需求的希望標準實現,其中實現了諸如begin()/ end()和iterator等功能,以滿足最小容器需求,以便使用基於範圍的for和其他。
C++ 14也可用,如果有我搜索的東西。
所有我發現了什麼是完整的模板實現,其中對數據的訪問也是編譯時間常數,如:
container.get<2>()
,我也不能使用,因爲我需要運行瓦爾訪問我的數據。
編輯:哪些問題/開銷出現在使用的std ::向量:
在使用的std ::矢量我也需要新的/刪除其產生具有的malloc /免費的AVR。我還發現,在avr上,向量本身的初始化本身需要使用每個模板實例的350字節代碼。訪問函數如operator[]
以及迭代器都非常小。
'std :: map'沒有意義,關鍵類型/值類型是什麼? –
kennytm
你在說什麼「大開銷」? –
@kennytm:修正了這個!謝謝 – Klaus