使用数组,一直习惯
#include <iostream>
#define MAX 500010
using namespace std;
int main(int argc, char const *argv[])
{
int arr[MAX] = {0};
int N = 0;
cin >> N;
for (int i = 0; i < N; ++i)
{
cin >> arr[i];
}
return 0;
}
使用动态数组的话
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
int N = 0;
cin >> N;
int *arr = new int [N];
for (int i = 0; i < N; ++i)
{
cin >> arr[i];
}
delete [] arr;
return 0;
}
动态分配的优点在于它不必在编译时知道数组的大小,如果使用静态数组也不提前告知数组大小的话,如下
int main(int argc, char const *argv[])
{
int N = 0;
cin >> N;
int arr[N] = {0};
for (int i = 0; i < N; ++i)
{
cin >> arr[i];
}
return 0;
}
编译提示 error: variable-sized object ‘arr’ may not be initialized