Thread overview
Finding the maxElement of Two-Dimensional Array
Jun 30, 2019
Samir
Jun 30, 2019
a11e99z
Jun 30, 2019
Samir
June 30, 2019
How come this works:

int[][] ta = [[2, 1, 4, 3], [3, 10, 2, 5]];
writeln(ta[1].maxElement); // 10

but I get an error when specifying the number of elements when declaring the array:

int[4][2] ta = [[2, 1, 4, 3], [3, 10, 2, 5]];
writeln(ta[1].maxElement); // get error on this line

Error: template std.algorithm.searching.maxElement cannot deduce function from argument types !()(int[4]), candidates are:
/home/samir/dlang/dmd-2.082.0/freebsd/bin64/../../src/phobos/std/algorithm/searching.d(3576):        std.algorithm.searching.maxElement(alias map = (a) => a, Range)(Range r) if (isInputRange!Range && !isInfinite!Range)
/home/samir/dlang/dmd-2.082.0/freebsd/bin64/../../src/phobos/std/algorithm/searching.d(3583):        std.algorithm.searching.maxElement(alias map = (a) => a, Range, RangeElementType = ElementType!Range)(Range r, RangeElementType seed) if (isInputRange!Range && !isInfinite!Range && !is(CommonType!(ElementType!Range, RangeElementType) == void))

Thanks
Samir
June 30, 2019
On Sunday, 30 June 2019 at 15:22:42 UTC, Samir wrote:
> How come this works:
> int[4][2] ta = [[2, 1, 4, 3], [3, 10, 2, 5]];
> writeln(ta[1].maxElement); // get error on this line
>

try to take slice from static arrays
writeln(ta[1][].maxElement);
or use dynamic arrays (slices)
int[][] ta = [[2, 1, 4, 3], [3, 10, 2, 5]]; // or auto ta

June 30, 2019
On Sunday, 30 June 2019 at 15:38:42 UTC, a11e99z wrote:
> try to take slice from static arrays
> writeln(ta[1][].maxElement);

That does what I am looking for.  Thank you for the quick reply!