如何私下使用 2d 矢量作为 class 成员来创建游戏板?

How can I use 2d vector as class member in private for create a game-board?

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    class board{
        public:
        
      /*  vector<vector<int>>getmyvector(){
            return vect;
        }
        board(vector<vector<int>>vect2){
            vect=vect2;
        }*/
        
        private:
        vector<vector<int>vect;
        
    };

/* vector<vector<int>> getmyvector(){               //getter   
     return vect;
 }
 
board :: board(vector<vector<int>>vect2):vect(vect2){  //constructor     
    
}
*/


int main()
{
    vector<vector<int>>vec;
    
    vec{
    {0,0,1,1,2},
    {1,1,0,2,1},
    {1,1,2,2,0},
    };
    board a(vec);
    return 0;
}

我正在尝试在 private.But 中创建一个二维矢量 我尝试访问这个矢量 我得到 fail.How 我可以私下加载一个板的二维矢量吗 我如何公开使用这个板?如何为二维向量创建 getter、setter 或构造函数?

您可以使用下面给出的程序作为起点(参考)。 class board 有一个名为 vect 的私有数据成员和名为 getVectorsetVectordisplay 的 public 成员函数。

#include <iostream>
#include <vector>
class board{
    public:
      //create getter 
      std::vector<std::vector<int>> getVector() const 
      {
          return vect;
      }
      
      //create setter
      void setVector(std::vector<std::vector<int>> pvect)
      {
          vect = pvect;
      }
      
      //display() function that prints elements of the vect data member
      void display()
      {
          for(const std::vector<int> &elem: vect)
          {
              for(int intElem: elem)
              {
                  std::cout<<intElem<<std::endl;
              }
          }
      }

    private:
     std::vector<std::vector<int>> vect;
    
};

int main()
{
    //create a board instance
    board myBoard;
    
   
    std::vector<std::vector<int>> vect{
    {0,0,1,1,2},
    {1,1,0,2,1},
    {1,1,2,2,0},
    };
    
    //use the setter to set the vect data member
    myBoard.setVector(vect);
    
    //lets print out the elements of the data member vect for the object myBoard using the display() member function
    myBoard.display();
    return 0;
}

上面程序的输出可见here.