gpt4 book ai didi

c++ - 从数组初始化 vector 出错

转载 作者:行者123 更新时间:2023-11-28 07:36:41 25 4
gpt4 key购买 nike

我正在创建一个 vector<vector<char>>来自 char 数组如下:

typedef vector<vector<char>> board;
...
char row0[] = {'X', '-', '-', '-', '-', '-', '-', '-', '-', 'X'};
char row1[] = {'-', 'X', '-', '-', '-', '-', '-', '-', 'X', '-'};
char row2[] = {'-', '-', 'X', '-', '-', '-', '-', 'X', '-', '-'};
char row3[] = {'-', '-', '-', 'X', '-', '-', 'X', '-', '-', '-'};
char row4[] = {'-', '-', '-', '-', 'X', 'X', '-', '-', '-', '-'};
char row5[] = {'-', '-', '-', '-', 'X', 'X', '-', '-', '-', '-'};
char row6[] = {'-', '-', '-', 'X', '-', '-', 'X', '-', '-', '-'};
char row7[] = {'-', '-', 'X', '-', '-', '-', '-', 'X', '-', '-'};
char row8[] = {'-', 'X', '-', '-', '-', '-', '-', '-', 'X', '-'};
char row9[] = {'X', '-', '-', '-', '-', '-', '-', '-', '-', 'X'};

vector<char> v0(row0[0], row0[9]);
vector<char> v1(row1[0], row1[9]);
vector<char> v2(row2[0], row2[9]);
vector<char> v3(row3[0], row3[9]);
vector<char> v4(row4[0], row4[9]);
vector<char> v5(row5[0], row5[9]);
vector<char> v6(row6[0], row6[9]);
vector<char> v7(row7[0], row7[9]);
vector<char> v8(row8[0], row8[9]);
vector<char> v9(row9[0], row9[9]);

board test;
test.push_back(v0);
test.push_back(v1);
test.push_back(v2);
test.push_back(v3);
test.push_back(v4);
test.push_back(v5);
test.push_back(v6);
test.push_back(v7);
test.push_back(v8);
test.push_back(v9);

完成后,我希望看到打印电路板看起来像原始的 char 数组。然而,它是这样打印的:

X X X X X X X X X X
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -
X X X X X X X X X X

我哪里错了?

编辑:这是我打印电路板的方式:

    void printBoard(Board b){
for (int r = 0; r <10; r++){
cout << "\n";
for (int c = 0; c <10; c++){
cout << b[r][c] << " ";
}
}

最佳答案

要从数组初始化一个 vector ,你应该这样写:

vector<char> v0(row0, row0 + 10);

与您所做的相反。我很惊讶这段代码甚至可以编译。可能您应该尝试使用编译器选项来打印更多警告。

关于c++ - 从数组初始化 vector 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16663616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com