Instance Property

indices

The indices that are valid for subscripting the collection, in ascending order.

Declaration

var indices: DefaultIndices<Entity.ChildCollection> { get }

Discussion

A collection’s indices property can hold a strong reference to the collection itself, causing the collection to be non-uniquely referenced. If you mutate the collection while iterating over its indices, a strong reference can cause an unexpected copy of the collection. To avoid the unexpected copy, use the index(after:) method starting with startIndex to produce indices instead.

var c = MyFancyCollection([10, 20, 30, 40, 50])
var i = c.startIndex
while i != c.endIndex {
    c[i] /= 5
    i = c.index(after: i)
}
// c == MyFancyCollection([2, 4, 6, 8, 10])

See Also

Manipulating Indices

func distance(from: Int, to: Int) -> Int

Returns the distance between two indices.

func firstIndex(of: Entity) -> Int?

Returns the first index where the specified value appears in the collection.

func firstIndex(where: (Entity) -> Bool) -> Int?

Returns the first index in which an element of the collection satisfies the given predicate.

func formIndex(inout Int, offsetBy: Int)

Offsets the given index by the specified distance.

func formIndex(inout Int, offsetBy: Int, limitedBy: Int) -> Bool

Offsets the given index by the specified distance, or so that it equals the given limiting index.

func formIndex(after: inout Int)

Replaces the given index with its successor.

func index(Int, offsetBy: Int) -> Int

Returns an index that is the specified distance from the given index.

func index(Int, offsetBy: Int, limitedBy: Int) -> Int?

Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.

func index(of: Entity) -> Int?

Returns the first index where the specified value appears in the collection.

Deprecated