【发布时间】:2018-09-01 20:19:33
【问题描述】:
我正在尝试使用向量找出二维矩阵的转置。以下代码对我不起作用。我正在尝试将矩阵传递给名为 transpose() 的函数。我还有什么其他方法可以做到这一点?如果您指出我的错误,我将不胜感激。
#include <iostream>
#include <vector>
using namespace std;
void transpose(vector<vector<int> > &b)
{
vector<vector<int> > trans_vec;
for(int i=0;i<b.size();i++)
{
for(int j=0;j<b[i].size();j++)
{
trans_vec[j][i]=b[i][j];
}
}
}
int main()
{
vector<vector<int> > v1;
for(int i=0;i<2;i++)
{
vector<int> temp;
for(int j=0;j<3;j++)
{
temp.push_back(i);
}
v1.push_back(temp);
}
//Display output
for(int i=0;i<v1.size();i++)
{
for(int j=0;j<v1[i].size();j++)
{
cout<<v1[i][j];
}
cout<<endl;
}
transpose(v1);
//display transposed matrix
for(int i=0;i<v1.size();i++)
{
for(int j=0;j<v1[i].size();j++)
{
cout<<v1[i][j];
}
cout<<endl;
}
return 0;
}
【问题讨论】:
-
我想知道是否存在“在调整大小之前使用 C++ 向量”的规范副本...
-
Alternative possible duplicate。 @user202729 当然,SO 有所有的问题。
-
trans_vec 是在函数内部发生变化的局部变量,该函数没有返回任何内容
-
欢迎来到 Stack Overflow!当问题陈述很简单时,很难提供解决方案"it doesn't work"。请edit您的问题更完整地描述您预期会发生什么以及这与实际结果有何不同。请参阅 How to Ask 以获取有关什么是好的解释的提示。