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