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 más largas de
self
que no se superponen, comenzando con su primer elemento, y que tienen 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
.