Function Vector.erase

Removes specified element from the vector.

size_t erase (
  const size_t pos
) nothrow scope;

size_t erase (
  const size_t pos,
  const size_t n
) scope;

size_t erase (
  scope const Vector.ElementType* ptr
) nothrow scope;

size_t erase (
  scope const Vector.ElementType[] slice
) nothrow scope @safe;

Return index of first removed element.

Parameters

pos position of first element to be removed.

n number of elements to be removed.

ptr pointer to elements to be removed.

slice sub-slice to be removed, slice must be subset of this

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]);
}