int* HT;
int HTc = 500;
HT = new int[HTc] = {-1}; //Fill array with -1
我收到警告:
扩展初始化程序列表仅适用于-std = c ++ 0x或 = STD = GNU ++ 0x中
我认为这意味着它与我的教授的ANSI标准不兼容。坚果。 我怎么能这样做呢?
答案 0 :(得分:6)
使用std :: fill。使用std :: vector而不是c样式数组会更好,但仅用于演示:
#include <algorithm>
int HTc = 500;
int HT[] = new int[HTc];
std::fill(HT, HT+HTc, -1);
// ...
delete[] HT;
答案 1 :(得分:2)
即使您使用了推荐的选项,我也不确定这会以您想要的方式工作 - 它不会将第一个数组元素初始化为-1而其余数据元素初始化为0吗?
只需遍历所有元素并单独设置它们。
答案 2 :(得分:2)
除非你有其他一些真正优秀的理由,否则首选的方法是不仅使用向量,还要在调用ctor时指定初始值:std::vector<int> HT(500, -1);