如何声明具有 1000000 个元素的类 C++
how to declare class with 1000000 elements c++
我正在编写一个 c++ 代码,我需要声明一个有两个 elment 的类
class arr{
public:
long num;
string str;
};
现在我需要存储近 1000000 个此类的 elment(取决于用户输入的类对象数量可以在 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 的值工作正常 我应该尝试用什么方法一次声明超过 100000 个对象,我尝试借助将 arra 分为两部分的 2D 数组解决问题
arr a[1000][1000];
但是这种方法对我不起作用
如果有人有任何想法,请帮助我解决这个问题提前感谢
我只使用 std::vector
#include <iostream>
#include <vector>
int main(){
long n;
cin>>n;
std::vector<arr> a(n);
}
我的问题通过@davic Hammen 堆栈无法动态容纳大型数组
不要创建包含 100,000 个元素的类。相反,创建一个类,其中包含一个可以保存多个值的元素 - 数组。
您可以像这样创建数组,而不是在堆栈上声明它们:
// Allocating memory
arr *a = new arr[n];
// Example of usage:
cout << a[x].str
// Freeing memory
delete [] a;
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将元素添加到数组的线程安全函数?
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 我想访问std::unique_ptr中的一个特定元素
- 如何通过 getter 函数删除矢量的元素?
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 如何声明具有 1000000 个元素的类 C++
- 如何声明具有 1000000 个元素的类 C++