Visual c++ 在c+中动态初始化多维数组+;
可能重复:Visual c++ 在c+中动态初始化多维数组+;,visual-c++,Visual C++,可能重复: 我正在开发一个应用程序。因为我需要动态地声明多维数组。使用动态数组大小和值,我希望您能参与其中。请有人帮我做这件事 提前感谢这取决于您想要它的“动态”程度 一种方法是: const size_t outerSize = 15; const size_t innerSize = 20; int* arr = new int[outerSize * innerSize]; // To access an item, multiply the row index by the "wi
我正在开发一个应用程序。因为我需要动态地声明多维数组。使用动态数组大小和值,我希望您能参与其中。请有人帮我做这件事 提前感谢这取决于您想要它的“动态”程度 一种方法是:
const size_t outerSize = 15;
const size_t innerSize = 20;
int* arr = new int[outerSize * innerSize];
// To access an item, multiply the row index by the "width", and add the column index
arr[innerSize * 5 + 7] = 13;
// When done with the array:
delete[] arr;
这个解决方案的问题是,您必须非常小心地确保调用delete[]数组代码>,即使引发异常
如果您不想担心内存管理,并且可以小心不要制作锯齿阵列(或者可以使用锯齿阵列),那么您可以使用:
std::vector<std::vector<YourType> >
std::vector
您可以使用以下特定大小对其进行初始化:
const size_t outerSize = 15;
const size_t innerSize = 20;
std::vector<YourType> initalRow(innerSize);
std::vector<std::vector<YourType> > multiDimArray(outerSize, initalRow);
const size\u t outerSize=15;
常量大小\u t innerSize=20;
std::向量初始行(innerSize);
向量多维数组(outerSize,initalRow);
您还可以使用默认的预填充值对其进行初始化:
const size_t outerSize = 15;
const size_t innerSize = 20;
YourType initialValue;
initialValue.ExampleValue = 7;
std::vector<YourType> initalRow(innerSize, initialValue);
std::vector<std::vector<YourType> > multiDimArray(outerSize, initalRow);
const size\u t outerSize=15;
常量大小\u t innerSize=20;
YourType初始值;
initialValue.ExampleValue=7;
std::vector initalRow(innerSize,initialValue);
向量多维数组(outerSize,initalRow);
与任何多维数组一样,填充它的最简单方法是在两个循环中:
const size_t outerSize = 15;
const size_t innerSize = 20;
std::vector<YourType> initalRow(innerSize);
std::vector<std::vector<YourType> > multiDimArray(outerSize, initalRow);
for(size_t i = 0; i < outerSize; ++i)
{
for(size_t j = 0; j < innerSize; ++j)
{
multiDimArray[i][j].ExampleValue = i * j;
}
}
const size\u t outerSize=15;
常量大小\u t innerSize=20;
std::向量初始行(innerSize);
向量多维数组(outerSize,initalRow);
对于(大小i=0;i
使用。显示您目前拥有的代码,以便我们可以看到您正在使用的代码。