如何初始化2d向量

时间:2016-03-08 15:05:17

标签: c++ vector

我正在构建一个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}};

3 个答案:

答案 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' } };
相关问题