为了在二维矩阵[n] [m]中找到第i行中的最大元素,这是有效的
int t= *max_element(matrix[i],matrix[i]+m);
但我没有得到如何以相同的方式在第i列中找到max元素。
答案 0 :(得分:0)
std::max_element
适用于行的原因很简单:算法接受转发迭代器来指定范围,因此也可以传递指针:指针指向第一个元素在行中,指针指向最后一个。行中的元素在内存中形成一个连续的块,因此使用指针的方法效果很好。
另一方面,没有办法对列元素使用std::max_element
的方式与列元素在内存中不形成连续块的方式相同。
最自然的方式就是编写一个简单的循环而不使用STL算法。