Function Array.insertAfter

Inserts el before or after r.

size_t insertAfter(R) (
  Array.Range r,
  scope R el
)
if (!isInfinite!R && isInputRange!R && isImplicitlyConvertible!(ElementType!R, T));

size_t insertAfter(size_t R) (
  Array.Range r,
  T[R] el
);

size_t insertAfter(R) (
  Array.Range r,
  auto ref R el
)
if (isImplicitlyConvertible!(R, T));

Parameters

NameDescription
R Type of the inserted value(s) (single value, range or static array).
r Range originally obtained from this array.
el Value(s) should be inserted.

Returns

The number of elements inserted.

Precondition

r refers to a region of this.

Example

Array!int v1;
v1.insertAfter(v1[], [2, 8]);
assert(v1[0] == 2);
assert(v1[1] == 8);
assert(v1.length == 2);

v1.insertAfter(v1[], [1, 2]);
assert(v1[0] == 2);
assert(v1[1] == 8);
assert(v1[2] == 1);
assert(v1[3] == 2);
assert(v1.length == 4);

v1.insertAfter(v1[0 .. 0], [1, 2]);
assert(v1[0] == 1);
assert(v1[1] == 2);
assert(v1[2] == 2);
assert(v1[3] == 8);
assert(v1[4] == 1);
assert(v1[5] == 2);
assert(v1.length == 6);

v1.insertAfter(v1[0 .. 4], 9);
assert(v1[0] == 1);
assert(v1[1] == 2);
assert(v1[2] == 2);
assert(v1[3] == 8);
assert(v1[4] == 9);
assert(v1[5] == 1);
assert(v1[6] == 2);
assert(v1.length == 7);

Example

Array!int v1;
v1.insertBefore(v1[], [2, 8]);
assert(v1[0] == 2);
assert(v1[1] == 8);
assert(v1.length == 2);

v1.insertBefore(v1[], [1, 2]);
assert(v1[0] == 1);
assert(v1[1] == 2);
assert(v1[2] == 2);
assert(v1[3] == 8);
assert(v1.length == 4);

v1.insertBefore(v1[0 .. 1], [1, 2]);
assert(v1[0] == 1);
assert(v1[1] == 2);
assert(v1[2] == 1);
assert(v1[3] == 2);
assert(v1[4] == 2);
assert(v1[5] == 8);
assert(v1.length == 6);

v1.insertBefore(v1[2 .. $], 9);
assert(v1[0] == 1);
assert(v1[1] == 2);
assert(v1[2] == 9);
assert(v1[3] == 1);
assert(v1[4] == 2);
assert(v1[5] == 2);
assert(v1[6] == 8);
assert(v1.length == 7);