【发布时间】:2015-09-26 20:57:48
【问题描述】:
我创建了一个二维矩阵作为这样的向量:
vector<vector<int>> mat;
现在我需要交换矩阵的行和列,例如:
row 0 swapped with row 4
column 5 swapped with column 1
行不是问题,因为有 stl 库的 swap() 函数。尽管交换行似乎很成问题,因为当然,它们不被视为一种原子结构。所以在这一点上我真的被困住了......我考虑过粗暴地交换我感兴趣的行的每个元素,但这似乎很不雅。知道如何实现我的目标吗?
【问题讨论】:
-
我没有看到替代方案,但我看到了其他问题。您是否认为所有行的大小都一样是理所当然的(前提条件)?
-
是的,对不起。矩阵是正方形的。
-
通过“交换行..”你的意思是列对吗?
-
不,你不能。你必须对vector中的每个vector执行swap操作。
-
如果你打算将它用于更复杂的任务,更优雅和有效的方法是使用诸如 eigen 之类的库。对于一个简单的自制解决方案,我也看不到替代品。可能在单个向量中展开矩阵会使行和列操作相似,但不一定更容易