簡體   English   中英

太多的初始化值 C++

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM