Algoritmos de coleção mutável

public protocol MutableCollectionAlgorithms: MutableCollection
where SubSequence: MutableCollectionAlgorithms

Fornece pontos de personalização para algoritmos MutableCollection .

Se incorporados à biblioteca padrão, esses requisitos fariam apenas parte de MutableCollection . Enquanto isso, você pode declarar a conformidade de uma coleção para MutableCollectionAlgorithms para fazer com que esses pontos de personalização sejam usados ​​a partir de outros algoritmos definidos em MutableCollectionAlgorithms .

  • Gira os elementos da coleção para que o elemento do middle fique primeiro.

    Complexidade

    Sobre )

    Declaração

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

    Valor de retorno

    O novo índice do elemento que foi a primeira pré-rotação.

  • stablePartition(isSuffixElement:) Método de extensão

    Move todos os elementos que satisfazem isSuffixElement para um sufixo da coleção, preservando sua ordem relativa, e retorna o início do sufixo resultante.

    Complexidade

    O(n) onde n é o número de elementos.

    Declaração

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