Kolekcja

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ę od i . 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śli self jest zgodne z RandomAccessCollection ; w przeciwnym razie co najwyżej N takich operacji.

    Deklaracja

    func partitionPoint(
      where predicate: (Element) throws -> Bool
    ) rethrows -> Index
  • Zwraca self.map(transform) obliczone równolegle na fragmentach self o rozmiarze minBatchSize lub minBatchSize + 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 przez selection 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ści batchSize .

    Deklaracja

    public func inBatches(of batchSize: Int) -> Slices<Self>
  • Zwraca n tą pozycję w self .

    Deklaracja

    func index(atOffset n: Int) -> Index
Dostępne, gdy `Element`: `Możliwość układania`
  • 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 to false .