我在初始化 2D int 数组时遇到问题。 我的程序结构是:
int arr[2][2];
if(val==1)
arr = {{1,1}, {2,2}};
else if (val==2)
arr = {{3,3}, {4,4}};
...
...
int x = arr[1][1];
...
我收到错误“表达式必须是可修改的左值”
谢谢。
最佳答案
在您的代码中,arr = {{1,1}, {2,2}};
不是 初始化。如果您坚持使用原生数组,恐怕您必须手动设置每个元素。
但是你可以切换到使用 std::array
,它会给出你想要的:
array<array<int, 2>, 2> arr;
if (val == 1)
arr = { { { 1,1 }, { 2,2 } } };
else if (val == 2)
arr = { { { 3,3 }, { 4,4 } } };
int x = arr[1][1];
注意额外的大括号(参见 here )。
关于c++ - 在外部声明一个数组并使用初始化列表进行初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49357188/