C++ 填充可变大小的数组

C++ 填充可变大小的数组,c++,C++,我得到警告: 扩展初始值设定项列表仅适用于-std=c++0x或 =std=gnu++0x 我假设这意味着它与ANSI标准不兼容,我的教授对此非常支持。 否则我怎么做呢?即使使用了推荐的选项,我也不确定这是否会按您所希望的方式工作-它是否会将第一个数组元素初始化为-1,将其余元素初始化为0 只需遍历所有元素并单独设置它们。即使使用了推荐的选项,我也不确定这是否会按您希望的方式工作-它是否会将第一个数组元素初始化为-1,将其余元素初始化为0 只需遍历所有元素并单独设置它们。使用std::fill。

我得到警告:

扩展初始值设定项列表仅适用于-std=c++0x或 =std=gnu++0x

我假设这意味着它与ANSI标准不兼容,我的教授对此非常支持。
否则我怎么做呢?

即使使用了推荐的选项,我也不确定这是否会按您所希望的方式工作-它是否会将第一个数组元素初始化为-1,将其余元素初始化为0


只需遍历所有元素并单独设置它们。

即使使用了推荐的选项,我也不确定这是否会按您希望的方式工作-它是否会将第一个数组元素初始化为-1,将其余元素初始化为0


只需遍历所有元素并单独设置它们。

使用std::fill。使用std::vector比使用c样式的数组更好,但仅用于演示:

int* HT;
int HTc = 500;
HT = new int[HTc] = {-1}; //Fill array with -1
#包括
int HTc=500;
int HT[]=新int[HTc];
标准:填充(HT,HT+HTc,-1);
// ...
删除[]HT;

使用std::fill。使用std::vector比使用c样式的数组更好,但仅用于演示:

int* HT;
int HTc = 500;
HT = new int[HTc] = {-1}; //Fill array with -1
#包括
int HTc=500;
int HT[]=新int[HTc];
标准:填充(HT,HT+HTc,-1);
// ...
删除[]HT;

除非您有真正突出的理由不这样做,否则首选方法不仅是使用向量,而且在调用ctor时指定初始值:
std::vector HT(500,-1)

除非您有真正突出的理由这样做,否则首选的方法不仅是使用向量,而且在调用ctor时指定初始值:
std::vector HT(500,-1)

认真地说,停止你正在做的事情,创建你自己的向量和字符串类。然后在上面使用
std::fill
。(或者如果你的教授在这方面也很愚蠢,那就自己填吧。)我不建议你使用可变长度数组。编辑:哦,你正在使用动态内存。说真的,停止你正在做的事情,创建你自己的向量和字符串类。然后在上面使用
std::fill
。(或者如果你的教授在这方面也很愚蠢,那就自己填吧。)我不建议你使用可变长度数组。编辑:哦,你在使用动态记忆。显然,他的教授不允许。糟糕的程序员是如何结束教学的?我想这符合“那些能做的人;那些不能做的人,教;那些不能教的人,教体育”——只有在这种情况下,他们显然教编程。这反过来又让我想起了另一句老话,大意是:“自由诗是最难写得让人接受的诗——因此,那些不能写得让人接受的诗的人最常尝试的诗。”显然,他的教授不允许这样做。糟糕的程序员是如何结束教学的?我想这符合“那些能做的人;那些不能做的人,教;那些不能教的人,教体育”——只有在这种情况下,他们显然教编程。这反过来又让我想起另一句老话,大意是:“自由诗是最难写出可接受的诗——因此,那些不能写出任何可接受的诗的人最常尝试的诗。”