extension Collection
extension Collection where Element: Collatable
Devuelve una vista de esta colección con los elementos reordenados de modo que el elemento en la posición dada termine primero.
La subsecuencia de la colección hasta
i
se desplaza después de la subsecuencia que comienza eni
. Por lo demás, el orden de los elementos dentro de cada partición no cambia.let a = [10, 20, 30, 40, 50, 60, 70] let r = a.rotated(shiftingToStart: 3) // r.elementsEqual([40, 50, 60, 70, 10, 20, 30])
Declaración
func rotated(shiftingToStart i: Index) -> RotatedCollection<Self>
Parámetros
i
La posición en la colección que debería ser la primera en el resultado.
i
ser un índice válido de la colección.Valor de retorno
Una vista rotada de los elementos de esta colección, de modo que el elemento en
i
sea el primero.Declaración
func stablyPartitioned( isSuffixElement p: (Element) -> Bool ) -> [Element]
Devuelve el índice del primer elemento de la colección que coincide con el predicado.
La colección ya debe estar particionada según el predicado, como si ya se hubiera llamado
self.partition(by: predicate)
.- Eficiencia: como máximo, log(N) invocaciones de
predicate
, donde N es la longitud deself
. Como máximo, operaciones de compensación de índice log(N) siself
se ajusta aRandomAccessCollection
; en caso contrario, como máximo N operaciones de este tipo.
Declaración
func partitionPoint( where predicate: (Element) throws -> Bool ) rethrows -> Index
- Eficiencia: como máximo, log(N) invocaciones de
Devuelve
self.map(transform)
, calculado en paralelo en fragmentos de self de tamañominBatchSize
ominBatchSize + 1
.Requiere
Es seguro llamartransform
desde varios subprocesos.Declaración
func concurrentMap<B>( minBatchSize: Int = 1, _ transform: (Element) -> B ) -> [B]
Devuelve una colección de elementos de
self
en las posiciones y en el orden especificado porselection
sin leer los elementos de ninguna de las colecciones.Complejidad
O(1)Declaración
public func sampled<Selection: Collection>(at selection: Selection) -> Sampling<Self, Selection>
Devuelve las porciones de
self
más largas que no se superponen, comenzando con su primer elemento, con una longitud máxima debatchSize
.Declaración
public func inBatches(of batchSize: Int) -> Slices<Self>
Devuelve la
n
posición enself
.Declaración
func index(atOffset n: Int) -> Index
El resultado de cotejar los elementos del
self
.Declaración
public var collated: Element { get }
Devuelve los elementos de
self
, rellenados a su forma máxima conpadValue
y cotejados.Declaración
public func paddedAndCollated<Scalar: Numeric>( with padValue: Scalar, atStart: Bool = false ) -> Element where Element == Tensor<Scalar>
Parámetros
atStart
agrega el relleno al principio si esto es
true
y al final en caso contrario. El valor predeterminado esfalse
.