Collection

extension Collection
extension Collection where Element: Collatable
  • Renvoie une vue de cette collection avec les éléments réorganisés de telle sorte que l'élément à la position donnée finisse en premier.

    La sous-séquence de la collection jusqu'à i est décalée après la sous-séquence commençant à i . L’ordre des éléments au sein de chaque partition reste par ailleurs inchangé.

    let a = [10, 20, 30, 40, 50, 60, 70]
    let r = a.rotated(shiftingToStart: 3)
    // r.elementsEqual([40, 50, 60, 70, 10, 20, 30])
    

    Déclaration

    func rotated(shiftingToStart i: Index) -> RotatedCollection<Self>

    Paramètres

    i

    Position dans la collection qui doit être la première dans le résultat. i dois être un index valide de la collection.

    Valeur de retour

    Une vue pivotée sur les éléments de cette collection, de telle sorte que l'élément en i soit en premier.

  • Déclaration

    func stablyPartitioned(
      isSuffixElement p: (Element) -> Bool
    ) -> [Element]
  • Renvoie l'index du premier élément de la collection qui correspond au prédicat.

    La collection doit déjà être partitionnée en fonction du prédicat, comme si self.partition(by: predicate) avait déjà été appelée.

    • Efficacité : au plus log(N) invocations de predicate , où N est la longueur de self . Au plus log(N) opérations de compensation d’index si self est conforme à RandomAccessCollection ; sinon, au plus N de telles opérations.

    Déclaration

    func partitionPoint(
      where predicate: (Element) throws -> Bool
    ) rethrows -> Index
  • Renvoie self.map(transform) , calculé en parallèle sur des morceaux de self de taille minBatchSize ou minBatchSize + 1 .

    A besoin

    transform peut être appelé en toute sécurité à partir de plusieurs threads.

    Déclaration

    func concurrentMap<B>(
      minBatchSize: Int = 1,
      _ transform: (Element) -> B
    ) -> [B]
  • Renvoie une collection d'éléments de self aux positions et dans l'ordre spécifiés par selection sans lire les éléments de l'une ou l'autre des collections.

    Complexité

    O(1)

    Déclaration

    public func sampled<Selection: Collection>(at selection: Selection)
      -> Sampling<Self, Selection>
  • Renvoie les tranches non chevauchantes les plus longues de self , en commençant par son premier élément, avec une longueur maximale de batchSize .

    Déclaration

    public func inBatches(of batchSize: Int) -> Slices<Self>
  • Renvoie la n ème position dans self .

    Déclaration

    func index(atOffset n: Int) -> Index
Disponible lorsque « Élément » : « Collatable »
  • Le résultat de la collecte des éléments de self .

    Déclaration

    public var collated: Element { get }
  • Renvoie les éléments de self , remplis à la forme maximale avec padValue et assemblés.

    Déclaration

    public func paddedAndCollated<Scalar: Numeric>(
      with padValue: Scalar, atStart: Bool = false
    ) -> Element
    where Element == Tensor<Scalar>

    Paramètres

    atStart

    ajoute le remplissage au début si cela est true et à la fin sinon. La valeur par défaut est false .