我想要一個創建未定數量的列表的程序。每個列表的大小是固定的,但是我不能在編譯時確定需要多少個列表。靜態數組的動態數組
我明白我不能創建數組的一個載體。我也明白我可以使用矢量矢量,但是我想知道這是否是最有效的方法,考慮到每次需要新數組時都需要保留固定數量的內存。
我想要一個創建未定數量的列表的程序。每個列表的大小是固定的,但是我不能在編譯時確定需要多少個列表。靜態數組的動態數組
我明白我不能創建數組的一個載體。我也明白我可以使用矢量矢量,但是我想知道這是否是最有效的方法,考慮到每次需要新數組時都需要保留固定數量的內存。
呃,你可以使用數組的載體,例如,
std::vector<std::array<T, N>> some_vec;
@Nim是正確的,但我不能給予好評尚未:P 也是他的解決方案是C++ 11。
另一種替代方法將被優先於std::vector<std::vector<T> >
是具有與尺寸X * Y.一個矢量然後就可以用v訪問自己的元素[Y * Y + X];
這適用於C++的所有版本,應該是一樣的std::vector<std::array<T, N> >
解決方案高效。
好吧,用'boost :: array <>'然後! ;) – Nim 2015-03-02 10:17:24
如果已經使用boost,那麼是的。但我不會需要提升只是爲了;-)但是,提升很酷:-) – 2015-03-02 10:24:29
固定長度和靜態不是一回事。 – 2015-03-02 09:55:27
Ahm ...但固定長度允許你創建靜態數組,而非固定不能,是嗎? – D1X 2015-03-02 10:00:46
你應該將自己的列表數據類型封裝在自己的類中,*和*使用'std :: array'作爲其底層存儲。如果你不能使用C++ 11,那麼最好使用矢量而不是傳統的C數組。任何業績損失可能都是微不足道的。 – 2015-03-02 10:04:23