Thread overview
Searching for a T in a T[]
Jun 22, 2016
Nordlöw
Jun 22, 2016
David Nadlinger
Jun 22, 2016
Nordlöw
Jun 22, 2016
cym13
June 22, 2016
Is there now algorithm (similar to `canFind`) that can search for a `T` in a `T[]`? Existing `canFind` only supports sub-sequence needles.

I'm aware of `std.string.indexOf` but that's only for strings.
June 22, 2016
On Wednesday, 22 June 2016 at 08:04:34 UTC, Nordlöw wrote:
> Is there now algorithm (similar to `canFind`) that can search for a `T` in a `T[]`? Existing `canFind` only supports sub-sequence needles.

What about http://dlang.org/phobos/std_algorithm_searching.html#.canFind.canFind.2?

 — David


June 22, 2016
On Wednesday, 22 June 2016 at 08:04:34 UTC, Nordlöw wrote:
> Is there now algorithm (similar to `canFind`) that can search for a `T` in a `T[]`? Existing `canFind` only supports sub-sequence needles.
>
> I'm aware of `std.string.indexOf` but that's only for strings.

I don't see why canFind isn't good enough for you, maybe I don't get what you want:

void main(string[] args) {
    import std.algorithm: canFind;

    struct Coord {
        int x, y;
    }

    Coord[] list = [Coord(0, 0), Coord(3, 14), Coord(1, 2), Coord(4, 2)];

    assert( list.canFind(Coord(3, 14)));
    assert( list.canFind(Coord(4, 2)));

    assert(!list.canFind(Coord(4, 3)));
    assert(!list.canFind(Coord(-1, 3)));
}

June 22, 2016
On Wednesday, 22 June 2016 at 08:07:51 UTC, David Nadlinger wrote:
> What about http://dlang.org/phobos/std_algorithm_searching.html#.canFind.canFind.2?

My mistake. The reason for the template error message was another than I though of. Thanks.