101*_*010 4 c++ arrays stl multidimensional-array c++11
我有一个任意类型的二维数组,维度N x M(即,T array[N][M];)例如,
我想翻转它的列,例如,
或其行,例如,
如何仅使用 STL 轻松完成此操作?
您只需使用std::reverse.
下面我定义了两个通用函数flip_columns,flip_rows它们将任意类型的二维数组作为输入,它们分别翻转/反转其列和行。
template<typename T, std::size_t N, std::size_t M>
void flip_columns(T (&arr)[N][M]) {
std::for_each(std::begin(arr), std::end(arr),
[](auto &i) {std::reverse(std::begin(i), std::end(i));});
}
Run Code Online (Sandbox Code Playgroud)
template<typename T, std::size_t N, std::size_t M>
void flip_rows(T (&arr)[N][M]) {
std::reverse(std::begin(arr), std::end(arr));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6226 次 |
| 最近记录: |