[英]too many initializer values c++
有人可以解釋為什么我收到以下編譯器錯誤:
錯誤:'std::array<std::array<State, 2>, 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 }
} };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.