我正在编写一个c ++代码,我需要声明一个有两个元素的类
class arr{
public:
long num;
string str;
};
现在我需要存储此类的近1000000个元素(取决于类对象的用户输入数量,可以在1< = n< = 1000000的范围内进行调整 该对象以
动态创建#include <iostream>
#include<string>
using namespace std;
class arr{
public:
long i;
string str;
};
int main(){
long n,j,i;
cin>>n;
arr a[n];
....程序的其余部分
但是如果n的值很大然后100000然后程序挂起但是工作正常值小于100000我应该尝试在一个go中尝试声明超过100000个对象我试图解决问题借助于2D数组分离arra分两部分
arr a [1000] [1000];
但这种做法对我不起作用
如果有任何人有任何想法,请帮助我解决这个问题 提前谢谢
答案 0 :(得分:6)
我只是使用std :: vector
#include <iostream>
#include <vector>
int main(){
long n;
cin>>n;
std::vector<arr> a(n);
}
我的问题解决了@davic Hammen堆栈的答案无法动态保存大数组
答案 1 :(得分:1)
不要创建包含100,000个元素的类。相反,创建一个具有一个可以容纳多个值的元素的类 - 一个数组。
答案 2 :(得分:0)
您可以像这样创建数组,而不是在堆栈中声明它们:
// Allocating memory
arr *a = new arr[n];
// Example of usage:
cout << a[x].str
// Freeing memory
delete [] a;