int arraySize;
cout << "\n\nEnter Total Number of Elements in Array.\n\n";
cin >> arraySize;
int arrayMain[arraySize];
我不想使用创建“新”数组命令。上面的代码和使用 new 命令创建一个新数组一样吗?
上面的代码和使用 new 命令创建一个新数组一样吗?
不,语法在 C++ 中无效。改用std::vector
:
int arraySize;
cout << "\n\nEnter Total Number of Elements in Array.\n\n";
cin >> arraySize;
std::vector<int> arrayMain(arraySize);
其他方面的用法是相同的。
这是不一样的。创建一个动态大小的数组new
是合法的,你的代码不是。如果你问我,那差别很大。
以下是虽然
std::vector<int> arrayMain(arraySize);
如果您必须在 C++ 中动态分配一个数组,并且课堂作业的规则使用内置数组强制执行,那么您将需要 new 和 delete 关键字:
int arraySize;
cout << "\n\nEnter Total Number of Elements in Array.\n\n";
cin >> arraySize;
int* arrayMain = new int[arraySize];
// use arrayMain here
delete [] arrayMain;
如果您不想动态分配内存,但您知道最大值,则可以分配最大值而不使用不需要的内存:
const int arraySizeMax = 51;
int arraySize;
do
{
cout << "\n\nEnter Total Number of Elements in Array, no more than 50.\n\n";
cin >> arraySize;
}
while(arraySize >= arraySizeMax);
int arrayMain[arraySizeMax];
// use arrayMain here
// No need for delete, since you didn't use new.
如果您不想动态分配内存并且没有最大值,则应使用标准容器,例如vector
:
vector<int>;
注意这是多么容易!这就是为什么您需要使用向量来完成此类任务。(当任务允许时。)