std.container.slist.s_list.insert_after
- multiple declarations
- Template SList.insertAfter
- Template SList.insertAfter
Template SList.insertAfter
Similar to
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 insertAfter
r
, use
. The complexity of that operation
only depends on the number of elements in insertAfter
(take(r, 1), stuff)stuff
.
Arguments
template insertAfter(Stuff);
Functions
Function name | Description |
---|---|
insertAfter |
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
.
Template 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.
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.
Arguments
template insertAfter(Stuff);
Functions
Function name | Description |
---|---|
insertAfter |
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
.
Examples
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"]));
Authors
Steven Schveighoffer, Andrei Alexandrescu
License
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at ).