インスタンスメソッド


replaceSubrange(_:with:)


指定された要素の部分範囲を与えられたコレクションに置き換えます。


System Swift iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+

macOS 11.0+ tvOS 14.0+ VisionOS 1.0+ WatchOS 7.0+

mutating func replaceSubrange<C, R>(
_ subrange: R,
with newElements: C
) where C : Collection, R : RangeExpression, Self.Element == C.Element, Self.Index == R.Bound




パラメータ


subrange

置き換えるべきコレクションの部分範囲。範囲の境界は、コレクションの有効なインデックスでなければなりません。


newElements

コレクションに追加すべき新しい要素。



議論


このメソッドは、コレクションから指定された範囲の要素を削除し、同じ場所に新しい要素を挿入する効果があります。新しい要素の数は、削除される要素の数と一致する必要はありません。


以下の例では、整数の配列の中央にある 3 つの要素が、Repeated<Int> インスタンスの 5 つの要素に置き換えられます。


  1. var nums = [10, 20, 30, 40, 50]
  2. nums.replaceSubrange(1...3, with: repeatElement(1, count: 5))
  3. print(nums)
  4. // Prints "[10, 1, 1, 1, 1, 1, 50]"

長さがゼロの範囲を subrange パラメータとして渡すと、このメソッドは subrange.startIndexnewElements の要素を挿入します。代わりに insert(contentsOf:at:) メソッドを呼び出すことをお勧めします。


同様に、長さがゼロのコレクションを newElements パラメータとして渡すと、このメソッドは与えられた部分範囲内の要素を置き換えずに削除します。代わりに removeSubrange(_:) メソッドを呼び出すことをお勧めします。


このメソッドを呼び出すと、このコレクションで使用する既存のインデックスが無効になります。


複雑さ:

O(n + m)、ここで n はこのコレクションの長さ、mnewElements の長さです。このメソッドの呼び出しが単に newElements の内容をコレクションに追加するだけの場合、このメソッドは append(contentsOf:) と同等で、複雑さは O(m) です。













トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ