extension Collection
extension Collection where Element: Collatable
Zwraca widok tej kolekcji ze zmienioną kolejnością elementów, tak aby element na podanej pozycji znalazł się jako pierwszy.
Podciąg zbioru do
i
jest przesuwany po podciągu zaczynającym się odi
. Poza tym kolejność elementów w każdej partycji pozostaje niezmieniona.let a = [10, 20, 30, 40, 50, 60, 70] let r = a.rotated(shiftingToStart: 3) // r.elementsEqual([40, 50, 60, 70, 10, 20, 30])
Deklaracja
func rotated(shiftingToStart i: Index) -> RotatedCollection<Self>
Parametry
i
Pozycja w kolekcji, która powinna być pierwsza w wyniku.
i
być prawidłowym indeksem kolekcji.Wartość zwracana
Obrócony widok elementów tej kolekcji, tak że element
i
jest pierwszy.Deklaracja
func stablyPartitioned( isSuffixElement p: (Element) -> Bool ) -> [Element]
Zwraca indeks pierwszego elementu w kolekcji, który pasuje do predykatu.
Kolekcja musi być już podzielona zgodnie z predykatem, tak jakby
self.partition(by: predicate)
zostało już wywołane.- Wydajność: Co najwyżej log(N) wywołań
predicate
, gdzie N jest długościąself
. Co najwyżej operacje przesunięcia indeksu log(N), jeśliself
jest zgodne zRandomAccessCollection
; w przeciwnym razie co najwyżej N takich operacji.
Deklaracja
func partitionPoint( where predicate: (Element) throws -> Bool ) rethrows -> Index
- Wydajność: Co najwyżej log(N) wywołań
Zwraca
self.map(transform)
obliczone równolegle na fragmentach self o rozmiarzeminBatchSize
lubminBatchSize + 1
.Wymaga
transform
można bezpiecznie wywołać z wielu wątków.Deklaracja
func concurrentMap<B>( minBatchSize: Int = 1, _ transform: (Element) -> B ) -> [B]
Zwraca kolekcję elementów
self
na pozycjach i w kolejności określonej przezselection
bez czytania elementów którejkolwiek kolekcji.Złożoność
O(1)Deklaracja
public func sampled<Selection: Collection>(at selection: Selection) -> Sampling<Self, Selection>
Zwraca najdłuższe, nienakładające się wycinki
self
, zaczynając od pierwszego elementu, o maksymalnej długościbatchSize
.Deklaracja
public func inBatches(of batchSize: Int) -> Slices<Self>
Zwraca
n
tą pozycję wself
.Deklaracja
func index(atOffset n: Int) -> Index
Wynik zestawienia elementów
self
.Deklaracja
public var collated: Element { get }
Zwraca elementy
self
, dopełnione do maksymalnego kształtu za pomocąpadValue
i posortowane.Deklaracja
public func paddedAndCollated<Scalar: Numeric>( with padValue: Scalar, atStart: Bool = false ) -> Element where Element == Tensor<Scalar>
Parametry
atStart
dodaje dopełnienie na początku, jeśli jest to
true
, a na końcu w przeciwnym razie. Wartość domyślna tofalse
.