我们平常定义数组的方法如下:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
int a[10];
a[4] = 10;
cout << a[4] << endl;
return 0;
}
如果使用上述代码定义一个大型数组那么必然将会出现数组定义失败的情况,程序不能够正常运行,那么这个时候我们就不能够这样定义这么大的数组。
我们可以选择自己使用malloc给数组开辟空间。实例代码如下:
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main(){
int *a = (int*)malloc(sizeof(int)*(1e9+10));
int n = 1e9;
cout << a[n] << endl;
free(a);
return 0;
}
通过这个方法可以实现1e9这么大容量数组的声明。
补充:通过vector容器可以实现更大的数组容量,下面通过定义一个1e100容量的数组为例:
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> a;
int main(){
int n = 1e100;
a.resize(n,0);
cout << a[n - 1] << endl;
return 0;
}
通过vector容器可以定义一个超级大的数组,通过这个方法可以解决大量的数组内存不够的问题。