【发布时间】:2013-10-12 10:31:06
【问题描述】:
我正在编写一个 c++ 代码,我需要声明一个具有两个元素的类
class arr{
public:
long num;
string str;
};
现在我需要存储这个类的近 1000000 个元素(取决于用户输入的类对象的数量可能在 1
#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 的值可以正常工作 我应该尝试什么方法一次声明超过 100000 个对象我尝试借助正在划分 arra 的 2D 数组来解决问题分两部分
arr [1000][1000];
但这种方法对我不起作用
如果有人有任何想法,请帮我解决这个问题 在此先感谢
【问题讨论】:
-
使用
std::vector而不是数组。问题解决了。 -
std::vector有什么问题? -
为什么有这么多元素?
-
您正在堆栈上创建这些数组。动态进行
-
a[1000][1000]在内存方面真的等同于a[1000000];这只是a[1000000]的语法糖。
标签: c++ arrays class object declaration