gpt4 book ai didi

c++ - 打印第二列时的2d char vector 打印空间

转载 作者:行者123 更新时间:2023-12-02 10:29:39 24 4
gpt4 key购买 nike

这是char的2d vector -

std::vector<std::vector<char>> solution = {
{"O","1"},
{"T","0"},
{"W","9"},
{"E","5"},
{"N","4"}
};
从第一列打印任何内容-可以正常打印。
cout << "In main - " << solution [ 1 ] [ 0 ]; // Prints T
但是当我尝试访问第二列的元素时。
cout << "In main - " << solution [ 1 ] [ 1 ]; // Prints blank space - I can't seem to understand why's the case.
经过大量搜索后,我尝试通过在每个元素周围加上单引号来进行尝试。
std::vector<std::vector<char>> solution = {
{'O','1'},
{'T','0'},
{'W','9'},
{'E','5'},
{'N','4'}
};
在这种情况下,它可以正常工作。
cout << "In main - " << solution [ 1 ] [ 1 ]; // Gives me 0 in this case.
现在为什么访问 "" double quotes 场景中的第二列时却出现空格。

最佳答案

在第一个示例中,对于solution的每个元素,您尝试从2个字符串文字构造一个vector<char>。这将使用vector的构造函数,该构造函数需要2个迭代器(因为字符串文字可以转换为指针)。由于指针未表示有效范围,因此将调用 undefined 行为(UB)。
在第二个示例中,对于solution的每个元素,您尝试从2个vector<char>构造一个char,这非常好,并且可以提供预期的结果。

关于c++ - 打印第二列时的2d char vector 打印空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62831470/

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