[英]2d char vector printing spaces when printing second column
這里我有一個 char 的二維向量 -
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>
。 這將使用帶有 2 個迭代器的vector
構造函數(因為字符串文字可以轉換為指針)。 由於指針未表示有效范圍,因此會調用未定義行為 (UB)。
在第二個示例中,對於solution
的每個元素,您嘗試從 2 個char
構造一個vector<char>
,這非常好,並且可以為您提供預期的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.