C++ ref类c+中的动态多维数组+;
如果有人告诉我如何在ref类中声明动态多维数组,我将不胜感激?有人可以发布一个示例代码吗?如果您负担得起数组的重新分配,那么请使用C++ ref类c+中的动态多维数组+;,c++,.net,arrays,c++-cli,C++,.net,Arrays,C++ Cli,如果有人告诉我如何在ref类中声明动态多维数组,我将不胜感激?有人可以发布一个示例代码吗?如果您负担得起数组的重新分配,那么请使用array类型 您可以使用“数组的数组”结构 /// Declaration array<array<SomeType>^>^ arr; /// Inititalization arr = gcnew array<array<SomeType>^> (NumElts1); for(int i=0 ; i <
array
类型
您可以使用“数组的数组”结构
/// Declaration
array<array<SomeType>^>^ arr;
/// Inititalization
arr = gcnew array<array<SomeType>^> (NumElts1);
for(int i=0 ; i < NumElts1 ; i++)
{
arr[i] = gcnew array<SomeType> (NumElts2);
}
因此,您可以将其用于1D数组,而无需第二个参数
array<SomeType>^ Arr = gcnew array<SomeType>(SizeOfThisArray);
array^Arr=gcnewarray(SizeOfThisArray);
<代码> >,你想用C++还是C++?这里有两个非常不同的代码示例。@用户您是否考虑过在cli中使用std::vector
。我在.NET Visual C++中编写。我不知道如何声明一个动态std::vector数组我可以声明一个看起来像你的第二个示例的多维数组,但是没有numDims(我想动态地更改它们)?这样你就不能。它“太有活力”。仅使用列表和较低固定维数组的精确索引有什么错?好的。那么,我可以使用没有numDims的一维数组声明吗?当然,维度数有一个默认值,它是1。请参阅我的编辑。array是从System::array派生的模板
template<typename T, int NumDims = 1>
ref class array: System::Array
{
// black magic here
}
array<SomeType>^ Arr = gcnew array<SomeType>(SizeOfThisArray);