我正在构建一个tictactoe游戏,但我似乎无法弄清楚如何初始化一个二维矢量。我知道如何为1d向量做这个,我假设2d向量将按照相同的原则运行,但这段代码不起作用:
QuartzCore.framework
我尝试过这方面的一些变化,但我没有运气。编译器说vector<vector<int>> PossibleWins[8][3] = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
答案 0 :(得分:1)
你应该这样做:
std::vector<std::vector<int>> PossibleWins {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
答案 1 :(得分:1)
使用时
vector<vector<int>> PossibleWins[8][3] = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
编译器认为这些数字中的每个人都代表std::vector<std::vector<int>>
。它抱怨,因为这些数字不能用来初始化std::vector<std::vector<int>>
。
将其与初始化2D阵列的方式进行比较。
int PossibleWins[8][3] = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
这是有效的,因为每个数字都是int
。
要初始化矢量矢量以表示2D阵列,您需要使用
vector<vector<int>> PossibleWins{{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
答案 2 :(得分:0)
怎么做
vector< vector<char> > board = { {'U','R','L','P','M'},{'X','P','R','E','T'},{'G','I','A','E','T'},{ 'X','T','N','Z','Y' },{ 'X','O','Q','R','S' } };