有人可以解释为什么我遇到以下编译器错误:
错误:‘std::array ,8>的初始化程序过多
#include <iostream>
#include <array>
using namespace std;
enum State
{
NONE,
WHITE,
BLACK
};
int main()
{
array<array<State, 2>, 8> initial = {
{ State::NONE, State::NONE },
{ State::WHITE, State::WHITE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::BLACK, State::BLACK },
{ State::NONE, State::NONE }
};
return 0;
}
最佳答案
您可以使用像这样的普通数组:
State ini[8][2] = {
{ State::NONE, State::NONE },
{ State::WHITE, State::WHITE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::BLACK, State::BLACK },
{ State::NONE, State::NONE }
};
或为修正您的代码,添加一对方括号: array<array<State, 2>, 8> initial = { {
{State::NONE, State::NONE },
{ State::WHITE, State::WHITE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::NONE, State::NONE },
{ State::BLACK, State::BLACK },
{ State::NONE, State::NONE }
} };