use*_*256 0 c++ dynamic-arrays
我需要创建一个特定对象的数组,其中我需要的数字依赖于一个单独的变量,解释它的最佳方法是使用psudo代码示例:
int num = 4;
for(int i=0;i<num;i++){
object_type arrayi [dynamic size];
}
Run Code Online (Sandbox Code Playgroud)
所以我需要4个数组,每个数组都有名称array0,array1,array2和array3,它们都必须是动态数组.无论如何在C++中这样做?
std::array<std::vector<object_type>, 4> array;
for (auto & v : array)
v.resize(dynamic_size);
Run Code Online (Sandbox Code Playgroud)
名字是array[0],array[1]等...代替array1,array2等等......但谁在乎呢?如果你绝对必须拥有这些名字,那么Cassio的回答是你最好的选择.
Pre C++ 11替代方案:
std::vector<object_type> array[4];
for (size_t i=0; i<4; ++i)
array[i].resize(dynamic_size);
Run Code Online (Sandbox Code Playgroud)
如果你想要一个可变数量的数组,那么你可以使用向量向量,实际上,初始化更容易.它不需要循环,您可以在构造函数中执行它.
std::vector<std::vector<object_type>> array(num, std::vector<object_type>(dynamic_size));
Run Code Online (Sandbox Code Playgroud)