任何人都可以解释什么“std::vector<std::vector<char>> board(3, std::vector<char>(3, ' '));”意思是

问题描述 投票:0回答:1

我遇到了这段用于构建 Tic-Tac-Toe 游戏的代码,但不知道它意味着什么。谁能简单解释一下吗?

std::vector<std::vector<char>> board(3, std::vector<char>(3, ' '));

上下文:

void drawBoard(const std::vector<std::vector<char>> &board)
{
    for (const auto &row : board)
    {
        for (char cell : row)
        {
            std::cout << cell << " ";
        }
        std::cout << std::endl;
    }
}

int main()
{
    std::vector<std::vector<char>> board(3, std::vector<char>(3, ' '));
    char currentPlayer = 'X';
    int row, col;
    bool gameOver = false;
c++ vector tic-tac-toe
1个回答
0
投票

该行正在使用

std::vector
的构造函数之一,两次:

constexpr vector( size_type count,
                  const T& value,
                  const Allocator& alloc = Allocator() );

此构造函数用于用

vector
份数
count
来初始化
value

所以这个...

std::vector<char>(3, ' ')

... 用三个元素构造

vector
char
,所有元素都初始化为
' '
(空格)。

在这个...

std::vector<std::vector<char>> board(3, std::vector<char>(3, ' '));

...

value_type
std::vector<char>
,它会复制
的三个副本
std::vector<char>(3, ' ')
,这使得
char
的 3x3 游戏板全部初始化为
' '

© www.soinside.com 2019 - 2024. All rights reserved.