2014-10-06 27 views
-2

我們可以創建在運行時確定的大小的動態C數組(賦予構造函數)。如何創建一個不可預測大小的C++數組(std :: array one)?如何從<array>頭創建一個新的C++數組?

+0

在堆上,使用新的。 – DuckQueen 2014-10-06 11:18:33

+7

錯誤不,使用'std :: vector <>'.. – Nim 2014-10-06 11:20:05

+2

哦...完全誤解了C++。 *在C++ 11中引入的'std :: array' *它是一個固定大小的數組。改用'std :: vector'。你可以分配堆和堆棧。 – m0nhawk 2014-10-06 11:20:11

回答

2

std::array通過模板參數在編譯時獲取大小。實際上不可能創建一個具有運行時大小的函數,即使您設置了一個函數表,但函數會創建不同大小的std::array s,但您無法正確使用它們。

真的,你應該使用std::vector運行時的大小。

您還可能想看看boost::container::static_vector,這是一個具有堆棧內存和固定容量但動態大小的容器。

相關問題