View source code
Display the source code in std/container/slist.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

std.container.slist.SList.insertAfter - multiple declarations

Function SList.insertAfter

Inserts stuff after range r, which must be a range previously extracted from this container. Given that all ranges for a list end at the end of the list, this function essentially appends to the list and uses r as a potentially fast way to reach the last node in the list. Ideally r is positioned near or at the last element of the list.

size_t insertAfter(Stuff) (
  SList.Range r,
  Stuff stuff
)
if (isInputRange!Stuff || isImplicitlyConvertible!(Stuff, T));

stuff can be a value convertible to T or a range of objects convertible to T. The stable version behaves the same, but guarantees that ranges iterating over the container are never invalidated.

Returns

The number of values inserted.

Complexity

Ο(k + m), where k is the number of elements in r and m is the length of stuff.

Example

auto sl = SList!string(["a", "b", "d"]);
sl.insertAfter(sl[], "e"); // insert at the end (slowest)
assert(std.algorithm.equal(sl[], ["a", "b", "d", "e"]));
sl.insertAfter(std.range.take(sl[], 2), "c"); // insert after "b"
assert(std.algorithm.equal(sl[], ["a", "b", "c", "d", "e"]));

Function SList.insertAfter

Similar to insertAfter above, but accepts a range bounded in count. This is important for ensuring fast insertions in the middle of the list. For fast insertions after a specified position r, use insertAfter(take(r, 1), stuff). The complexity of that operation only depends on the number of elements in stuff.

size_t insertAfter(Stuff) (
  Take!Range r,
  Stuff stuff
)
if (isInputRange!Stuff || isImplicitlyConvertible!(Stuff, T));

Precondition

r.original.empty || r.maxLength > 0

Returns

The number of values inserted.

Complexity

Ο(k + m), where k is the number of elements in r and m is the length of stuff.

Authors

Andrei Alexandrescu

License

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at ).