Protocol

RandomAccessCollection

A collection that supports efficient random-access index traversal. 効率のよい無作為アクセスのインデックス探査をサポートするコレクション。

Declaration 宣言

protocol RandomAccessCollection where Self.Indices : RandomAccessCollection, Self.SubSequence : RandomAccessCollection

Overview 概要

Random-access collections can move indices any distance and measure the distance between indices in O(1) time. Therefore, the fundamental difference between random-access and bidirectional collections is that operations that depend on index movement or distance measurement offer significantly improved efficiency. For example, a random-access collection’s count property is calculated in O(1) instead of requiring iteration of an entire collection. 無作為アクセスのコレクションは、任意の隔たりのインデックスを移動できます、そしてインデックス間の隔たりの測定をO(1)時間で行えます。それゆえに、無作為アクセスと二方向性のコレクションの根本的な違いは、インデックス移動や間隔測定に依存する演算が、著しく改善される効率を提示することです。例えば、無作為アクセスコレクションのもつcountプロパティは、コレクション全体の反復を要求したりせずにO(1)で計算されます。

Conforming to the RandomAccessCollection Protocol RandomAccessCollectionプロトコルに準拠する

The RandomAccessCollection protocol adds further constraints on the associated Indices and SubSequence types, but otherwise imposes no additional requirements over the BidirectionalCollection protocol. However, in order to meet the complexity guarantees of a random-access collection, either the index for your custom type must conform to the Strideable protocol or you must implement the index(_:offsetBy:) and distance(from:to:) methods with O(1) efficiency. RandomAccessCollectionプロトコルは、一層の制約を関連IndicesおよびSubSequence型に加えます、しかしそれ以外ではBidirectionalCollectionプロトコルを越える追加要件は課されません。しかしながら、無作為アクセスコレクションの計算量(複雑さ)保証を達成する手段として、あなたのあつらえの型に対するインデックスがStrideableプロトコルに準拠する、またはあなたがindex(_:offsetBy:)distance(from:to:)メソッドをO(1)の効率で実装する、いずれかをしなければなりません。

Topics 話題

Associated Types さまざまな関連型

Instance Properties 様々なインスタンスプロパティ

Instance Methods インスタンスメソッド

Subscripts 添え字

See Also 参照

Collection Traversal コレクション横断