【发布时间】:2013-03-20 23:22:24
【问题描述】:
我在 C/C++ 代码中有当前行:
double ma = *std::max_element(Dists[a], Dists[a] + size);
Dists[a] 是一个大小为size 的双整数数组
int Dists[size][size];
我正在寻找可以执行相同操作的 Java 中的等效函数。
由于“Dists[a] + size”行,我不确定这个 C/C++ 函数是如何工作的。
【问题讨论】:
-
max_element采用开始和结束迭代器并遍历该范围。指针是随机访问迭代器,数组在传递给函数时会衰减为指针。Dists[a] + size是结束迭代器的地址,使用指针算法,所以它是数组的结尾,因此整个数组被迭代。这与使用std::begin(Dists[a])和std::end(Dists[a])相同,但可能更清楚。