在 G++ 中初始化数组时遇到问题
Trouble initialising array in G++
我已经尝试将我的 int cate[catNum]
数组初始化为所有 1
,当 cout<<cate[1]
时,它输出 0
?不知道是什么问题,理论上应该是1?
int main ()
{
int const catNum = 13;
int cate[catNum]= {1};
cout<<cate[1]<<endl;
}
您将 cate
定义为一个包含 13 个整数的数组,但初始化器 {1}
只有一个整数,因此您只将第一个元素初始化为 1。要将它们全部设置,您可以这样做像
for (int i = 0; i < catNum; i++) { cate[i] = 1; }
int cate[catNum]= {1};
此语法将第一个元素初始化为 1,其余元素初始化为 0。(从技术上讲,它 值初始化 其余元素。)
试试,
std::fill( std::begin( cate ), std::end( cate ), 1 );
我已经尝试将我的 int cate[catNum]
数组初始化为所有 1
,当 cout<<cate[1]
时,它输出 0
?不知道是什么问题,理论上应该是1?
int main ()
{
int const catNum = 13;
int cate[catNum]= {1};
cout<<cate[1]<<endl;
}
您将 cate
定义为一个包含 13 个整数的数组,但初始化器 {1}
只有一个整数,因此您只将第一个元素初始化为 1。要将它们全部设置,您可以这样做像
for (int i = 0; i < catNum; i++) { cate[i] = 1; }
int cate[catNum]= {1};
此语法将第一个元素初始化为 1,其余元素初始化为 0。(从技术上讲,它 值初始化 其余元素。)
试试,
std::fill( std::begin( cate ), std::end( cate ), 1 );