struct AnyBidirectionalIndex
Inheritance |
BidirectionalIndexType, Equatable, ForwardIndexType, _Incrementable
View Protocol Hierarchy →
|
---|---|
Associated Types | |
Import | import Swift |
Initializers
Wrap and forward operations to base
.
Declaration
init<BaseIndex : BidirectionalIndexType>(_ base: BaseIndex)
Instance Methods
Returns the result of advancing self
by n
positions.
Returns:
- If n > 0
, the result of applying successor
to self
n
times.
- If n < 0
, the result of applying predecessor
to self
-n
times.
- Otherwise, self
.
Requires: n >= 0
if only conforming to ForwardIndexType
Complexity:
- O(1) if conforming to RandomAccessIndexType
- O(abs(n)
) otherwise
Declaration
func advancedBy(n: AnyBidirectionalIndex.Distance) -> AnyBidirectionalIndex
Declared In
BidirectionalIndexType
, ForwardIndexType
Returns the result of advancing self
by n
positions, or until it
equals limit
.
Returns:
- If n > 0
, the result of applying successor
to self
n
times
but not past limit
.
- If n < 0
, the result of applying predecessor
to self
-n
times
but not past limit
.
- Otherwise, self
.
Requires: n >= 0
if only conforming to ForwardIndexType
.
Complexity:
- O(1) if conforming to RandomAccessIndexType
- O(abs(n)
) otherwise
Declaration
func advancedBy(n: AnyBidirectionalIndex.Distance, limit: AnyBidirectionalIndex) -> AnyBidirectionalIndex
Declared In
BidirectionalIndexType
, ForwardIndexType
Measure the distance between self
and end
.
Requires:
- start
and end
are part of the same sequence when conforming to
RandomAccessSequenceType
.
- end
is reachable from self
by incrementation otherwise.
Complexity:
- O(1) if conforming to RandomAccessIndexType
- O(n
) otherwise, where n
is the function's result.
Declaration
func distanceTo(end: AnyBidirectionalIndex) -> AnyBidirectionalIndex.Distance
Declared In
ForwardIndexType
Returns the previous consecutive value in a discrete sequence of
AnyBidirectionalIndex
values.
Requires: self
has a well-defined predecessor.
Declaration
func predecessor() -> AnyBidirectionalIndex
Returns the next consecutive value in a discrete sequence of
AnyBidirectionalIndex
values.
Requires: self
has a well-defined successor.
Declaration
func successor() -> AnyBidirectionalIndex
A wrapper over an underlying
BidirectionalIndexType
that hides the specific underlying type.See Also:
AnyBidirectionalCollection