如何使用1000000元素c ++声明类

时间:2013-10-05 12:39:42

标签: c++ class arrays

我正在编写一个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];

但这种做法对我不起作用

如果有任何人有任何想法,请帮助我解决这个问题 提前谢谢

3 个答案:

答案 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;