默认构造函数c++随机数有效
Default constructor c++ Random Number valid?
我是c++的新手,对默认构造函数不太熟悉。我被要求编写一个名为Stats的类,并在默认构造函数中编写一个构造函数,该构造函数使用随机数生成器生成minValue和maxValue之间的sampleSize int,然后将其存储在名为data[]的数组中。到目前为止,每当我使用默认构造函数时,我只会将它们初始化为零或null。我不知道如何用这些set指令编写默认构造函数,这样我的代码才能正确运行而不会出错。这是我的
#include <iostream>
using namespace std;
class Stats
{
private:
int sampleSize, minValue, maxValue;
int data[];
public:
Stats()
{
sampleSize = 0;
minValue = 0;
maxValue = 0;
data[] = sampleSize;
}
Stats(int samleSize, int min, int max)
{
samplesize = samleSize;
minValue = min;
maxValue = max;
}
到目前为止,我可以告诉您想要在data
中保存一个动态大小的int
数组,您当前的语法是不正确的,但应该是您想要的。第一个data
需要是pointer
:
int *data;
然后你的构造函数会看起来像这样:
Stats()
{
sampleSize = 0;
minValue = 0;
maxValue = 0;
data = NULL;
}
Stats(int samleSize, int min, int max)
{
sampleSize = samleSize;
minValue = min;
maxValue = max;
data = new int[sampleSize] ;
}
一旦你的类中有了pointer
,你还需要有一个destructor
,这样你就可以释放与该pointer
相关的内存,它应该看起来像这样:
~Stats()
{
if( NULL != data )
{
delete [] data ;
}
}
这是假设你需要为你的任务坚持动态分配内存,如果你被允许使用std::vector
,那么这就变成了一个简单得多的问题,data
变成了这个:
std::vector<int> data ;
并且您根本不需要担心分配,然后当您需要向其添加数据时,只需调用push_back
:
data.push_back( randomNumber ) ;
data[] = sampleSize;
在C++中不是有效语法。不能用它初始化数组。
同时,data[]
没有类型。你应该做
int data[];
您还需要首先为data
数组分配内存,然后尝试使用随机数生成器将数字放入其中。
您可以使用std::vector
进行数据处理。由于并非所有实例的大小都是固定的。
class Stats
{
private:
int sampleSize, minValue, maxValue;
vector<int> data;
^^^^^^^^^^^^^^^^
public:
Stats()
{
sampleSize = 0;
minValue = 0;
maxValue = 0;
data.reserve(sampleSize); // Just to avoid reallocations.
}
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 整数不会重复超过随机数
- 欧拉项目#8答案是大以获得有效答案
- 调整大小后指向元素值的指针unordered_map有效?
- 为什么是0;C++中的有效语句
- 最高有效数字侧的第N位
- GCC对可能有效的代码抛出init list生存期警告
- 有效地使用std::unordered_map来插入或增加键的值
- c++中O(n^(1/3))中一个数的除数的有效计数
- 使用无符号字符数组有效存储内存
- 自定义先决条件对移动分配运算符有效吗
- if数组上的随机数
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 为什么这种直接初始化有效?(C++17)
- 将随机数放入缓冲区以写入文件的有效方法是什么?
- 具有从特定范围的随机数初始化特征矩阵或向量初始化特征矩阵或向量的有效方法
- 如何使用C 以有效的方式产生随机数
- 默认构造函数c++随机数有效