【发布时间】:2016-01-17 04:16:26
【问题描述】:
我有一个任意类型的二维数组,尺寸为N x M(即T array[N][M];),例如,
我想翻转它的列,例如,
或其行,例如,
如何仅使用 STL 轻松做到这一点?
【问题讨论】:
-
一种方法是在包装矩阵的类中设置一个标志,当你反转时,切换这个标志。通过 getter 函数访问元素时,相应地更改索引计算。如果您经常交换,这会很快。然而,由于额外的标志,访问每个元素的成本略高。
-
另外,答案取决于您如何表示数据。它是编码在 1 个平面数组中,还是一个数组数组等中?
-
@NeilKirk 一个二维数组(例如,
T a[4][3])。
标签: c++ arrays c++11 multidimensional-array stl