簡體   English   中英

打印第二列時的 2d char 矢量打印空間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM