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 deself
. Au plus log(N) opérations de compensation d’index siself
est conforme àRandomAccessCollection
; sinon, au plus N de telles opérations.
Déclaration
func partitionPoint( where predicate: (Element) throws -> Bool ) rethrows -> Index
- Efficacité : au plus log(N) invocations de
Renvoie
self.map(transform)
, calculé en parallèle sur des morceaux de self de tailleminBatchSize
ouminBatchSize + 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 parselection
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 debatchSize
.Déclaration
public func inBatches(of batchSize: Int) -> Slices<Self>
Renvoie la
n
ème position dansself
.Déclaration
func index(atOffset n: Int) -> Index
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 avecpadValue
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 estfalse
.