Vector.erase

Removes specified element from the vector.

Return index of first removed element.

  1. size_t erase(size_t pos)
  2. size_t erase(size_t pos, size_t n)
    struct Vector
    scope
    size_t
    erase
    ()
    (
    const size_t pos
    ,
    const size_t n
    )
  3. size_t erase(ElementType* ptr)
  4. size_t erase(ElementType[] slice)

Examples

//pos:
{
    auto vec = Vector!(int, 3).build(1, 2, 3, 4, 5, 6);

    size_t pos = vec.erase(3);
    assert(pos == 3);
    assert(vec == [1, 2, 3]);

    pos = vec.erase(100);
    assert(pos == 3);
    assert(vec == [1, 2, 3]);
}

{
    auto vec = Vector!(int, 3).build(1, 2, 3, 4, 5, 6);

    size_t pos = vec.erase(1, 4);
    assert(pos == 1);
    assert(vec == [1, 6]);

    pos = vec.erase(100, 4);
    assert(pos == 2);
    assert(vec == [1, 6]);

    pos = vec.erase(0, 100);
    assert(pos == 0);
    assert(vec.empty);
}

//ptr:
{
    auto vec = Vector!(int, 3).build(1, 2, 3, 4, 5, 6);

    size_t pos = vec.erase(vec.ptr + 3);
    assert(pos == 3);
    assert(vec == [1, 2, 3]);

    pos = vec.erase(vec.ptr + 100);
    assert(pos == 3);
    assert(vec == [1, 2, 3]);
}

{
    auto vec = Vector!(int, 3).build(1, 2, 3, 4, 5, 6);

    size_t pos = vec.erase(vec[1 .. 5]);
    assert(pos == 1);
    assert(vec == [1, 6]);
}

Meta