文書   >   Swift   >   Swift 標準ライブラリ  >     手動でメモリ管理   >   UnsafeMutableBufferPointer   >   partition(by:)
インスタンスメソッド
partition(by:)
与えられた述語 (predicate) に一致するすべての要素が、一致しないすべての要素の後にくるように、コレクションの要素を並べ替えます。
宣言
パラメータ
belongsInSecondPartition | コレクションの分割に使用される述語 (predicate) 。この述部を満たすすべての要素は、それを満たさないすべての要素の後に順序付けられます。 |
戻り値
コレクションを分割した後、p の前の要素が belongsInSecondPartition の述語 (predicate) を満たさず、p 以降のすべての要素は belongsInSecondPartition を満たす先端のインデックス p があります。
以下の例では、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 はコレクションの長さです。
トップへ
トップへ
トップへ
トップへ
トップへ