麻烦在G 中初始化阵列



我尝试将我的 int cate[catNum]数组初始化为所有 1 s,当 cout<<cate[1]时,它会输出 0?我不知道问题是什么,理论上应该是1?

int main ()
{
    int const catNum = 13;    
    int cate[catNum]= {1};
    cout<<cate[1]<<endl;
}
int cate[catNum]= {1};

该语法将第一个元素初始化为1,其余为0。

尝试,

std::fill( std::begin( cate ), std::end( cate ), 1 );

您将cate定义为13个整数的数组,但是Initializer {1}只有一个整数,因此您仅将第一个元素初始化为1。要将它们全部设置,您可以做类似的操作

for (int i = 0; i < catNum; i++) { cate[i] = 1; }

最新更新