在C+中输出二维向量+; 我一直在遵循一个教程,介绍如何用C++输出二维向量,并得到以下代码: #include <iostream> #include <vector> using namespace std; int main() { vector < vector < int > > test { { 1, 2, 3, 4, 5, 6, 7, 8, 9 } }; for( unsigned int i = 0; i < test.size(); i++ ) { for( unsigned int j = 0; j < test[i].size(); j++ ) { cout << test[i][j] << " "; } cout << endl; } }

在C+中输出二维向量+; 我一直在遵循一个教程,介绍如何用C++输出二维向量,并得到以下代码: #include <iostream> #include <vector> using namespace std; int main() { vector < vector < int > > test { { 1, 2, 3, 4, 5, 6, 7, 8, 9 } }; for( unsigned int i = 0; i < test.size(); i++ ) { for( unsigned int j = 0; j < test[i].size(); j++ ) { cout << test[i][j] << " "; } cout << endl; } },c++,2d-vector,C++,2d Vector,正如你所看到的,我的结果并不完全符合预期;我希望能够将向量输出到二维网格状空间。据我所知,我的代码遵循这个例子,但是cout你的顶部向量test只有一个条目,它是int{1,2,3,4,5,6,7,8,9}的向量,所以它的大小实际上是1。 因此,外部for循环将只迭代一次,您将获得平坦的输出 为了得到您期望的结果,您需要用多个条目初始化您的上向量——就像前面所评论的:vectortest{{1,2,3},{4,5,6},{7,8,9}或在初始化后推送更多条目。向量初始化中有一个输入错误。你用了{

正如你所看到的,我的结果并不完全符合预期;我希望能够将向量输出到二维网格状空间。据我所知,我的代码遵循这个例子,但是
cout你的顶部向量
test
只有一个条目,它是
int
{1,2,3,4,5,6,7,8,9}
向量,所以它的大小实际上是1。
因此,外部
for循环将只迭代一次,您将获得平坦的输出


为了得到您期望的结果,您需要用多个条目初始化您的上向量——就像前面所评论的:
vectortest{{1,2,3},{4,5,6},{7,8,9}
在初始化后推送
更多条目。

向量初始化中有一个输入错误。你用了
{{1,2,…,9}}
而不是
{1,2,3},{4,5,6},{7,8,9}
。你的向量是1x9,让它变成3x3使用
{1,2,3},{4,5,6},{7,8,9}
这就是它,谢谢你指出我自己的愚蠢,梅德布格是好的。检查
test.size()
test[0].size()
1 2 3 4 5 6 7 8 9