【发布时间】:2018-11-14 02:39:33
【问题描述】:
我正在尝试在 C++ 中打印一个二维数组,但我遇到了问题。我按照传统方式在 for 循环中打印了一个向量 vectorName.size()。所以我遵循的方式是这样的。
#include <stdio.h>
#include <iostream>
#include <vector>
#include <math.h>
#include <time.h>
using namespace std;
void impMat(vector < vector <int> >, vector < vector <int> >);
int main () {
vector < vector <int> > A;
vector < vector <int> > B;
vector <int> temp;
for(int j = 0; j < 4; j++){
for(int i = 0; i < 5; i++){
temp.push_back(i);
}
A.push_back(temp);
B.push_back(temp);
}
impMat(A,B);
cout << endl;
return 0;
}
void impMat(vector < vector <int> > A,vector < vector <int> > B)
{
for(int i = 0; i < A.size(); i++){
for(int j = 0; j < A[i].size(); j++){
cout << A[i][j] << " ";
}
cout << endl;
}
cout << endl;
for(int i = 0; i < B.size(); i++){
for(int j = 0; j < B[i].size(); j++){
cout << B[i][j] << " ";
}
cout << endl;
}
}
但那是打印这样的东西
0 1 2 3 4
0 1 2 3 4 0 1 2 3 4
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
预期输出
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
我怎样才能正确打印我的矢量?
【问题讨论】:
-
期望的输出是什么?为什么你忽略了打印的实际代码?这似乎是问题所在
-
什么是
A,什么是B?请提供minimal reproducible example。 -
sizeof(B[i])/sizeof(int)-- 你为什么要这样做?vector使用size()成员函数知道它拥有的元素数量。 -
您的向量是否正确填充?它们是如何初始化的?请创建一个minimal reproducible example(此处强调“完成”...)。
-
另外,由于
impMat()不修改向量,它们应该作为const&传递。
标签: c++ arrays vector printing