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
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
License
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at ).