Algoritmi MutableCollection

public protocol MutableCollectionAlgorithms: MutableCollection
where SubSequence: MutableCollectionAlgorithms

Fornisce punti di personalizzazione per gli algoritmi MutableCollection .

Se incorporati nella libreria standard, questi requisiti farebbero semplicemente parte di MutableCollection . Nel frattempo, puoi dichiarare la conformità di una raccolta a MutableCollectionAlgorithms per fare in modo che questi punti di personalizzazione vengano utilizzati da altri algoritmi definiti su MutableCollectionAlgorithms .

  • Ruota gli elementi della raccolta in modo che l'elemento al middle finisca per primo.

    Complessità

    SU )

    Dichiarazione

    @discardableResult
    mutating mutating func rotate(shiftingToStart middle: Index) -> Index

    Valore di ritorno

    Il nuovo indice dell'elemento che è stato il primo a effettuare la prerotazione.

  • stablePartition(isSuffixElement:) Metodo di estensione

    Sposta tutti gli elementi che soddisfano isSuffixElement in un suffisso della raccolta, preservandone l'ordine relativo, e restituisce l'inizio del suffisso risultante.

    Complessità

    O(n) dove n è il numero di elementi.

    Dichiarazione

    @discardableResult
    mutating func stablePartition(
      isSuffixElement: (Element) throws -> Bool
    ) rethrows -> Index