STL中是否有定长的数组容器,类似限制元素数目的vector,不要用c的原始数组
伊谢尔伦2017-04-17 13:29:23
一般當你需要使用陣列的時候,std::vector
是你的第一選擇,它在大多數情況下效率都是最高的,如果你需要指定長度的數組,可以使用reserve()
預先分配空間,或使用參數為長度的建構函式(參考中的第3個)。例如:
constexpr std::size_t init_size = 100;
std::vector<int> vi1(init_size);
std::vector<int> vi2;
vi2.reserve(init_size);
當然,也有類似內建的編譯時確定長度數組的模板類別std::array
。
ringa_lee2017-04-17 13:29:23
編譯期的定長數組肯定用std::array,但是我感覺題主並不是指這個,而是C++ 17 新引入的變量指定的數組(這個函數在C 已經出現很久了),同時它附帶了一個容器std::dynarray 配合使用,建構函式時決定大小,然後無法變更。現在的話,可以用 std::experimental::dynarray,或是 gsl::dyn_array.