文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Sequence and Collection Protocols   >   MutableCollection   >   partition(by:)   >   partition(by:)


インスタンスメソッド


partition(by:)


与えられた predicate (述語) と一致するすべての要素が、一致しないすべての要素の後にくるように、コレクションの要素を並べ替えます。



宣言


mutating func partition(by belongsInSecondPartition: (Self.Element) throws -> 
	Bool) rethrows -> Self.Index


パラメータ


belongsInSecondPartitionコレクションを分割するために使用される predicate (述語) 。この述語を満たすすべての要素は、それを満たさないすべての要素の後に順序付けられます。


戻り値


belongsInSecondPartition と一致する並べ替えられたコレクション内の最初の要素のインデックス。コレクション内のどの要素も belongsInSecondPartition と一致しない場合、返されるインデックスはコレクションの endIndex と等しくなります。


議論


コレクションを分割した後、ピボット・インデックス p があり、p の前の要素は belongsInSecondPartitionpredicate (述語) を満たさず、p を含むそれ以降のすべての要素が belongsInSecondPartition を満たします。


以下の例では、数値の配列は、30 を超える要素に一致する predicate (述語) で区切られています。


var numbers = [30, 40, 20, 30, 30, 60, 10]
let p = numbers.partition(by: { $0 > 30 })
// p == 5
// numbers == [30, 10, 20, 30, 30, 60, 40]


今や numbers の配列は 2 つのパーティションになりました。最初の部分の numbers[.. <p] は、30 を超えない要素で構成されています。2 番目の部分の numbers[p...] は、30 を超える要素で構成されています。


let first = numbers[..<p]
// first == [30, 10, 20, 30, 30]
let second = numbers[p...]
// second == [60, 40]


複雑さ:O(n)、ここで n はコレクションの長さです。


デフォルトの実装





MutableCollection の実装





目次
Xcode の新機能

  • SDK
  • Xcode 10.0+
  • フレームワーク
  • Swift 標準ライブラリ
  • 宣言
  • パラメータ
  • 戻り値
  • 議論
  • デフォルトの実装












  • トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)












    トップへ(Swift 標準ライブラリ演算子)