Bộ sưu tập

extension Collection
extension Collection where Element: Collatable
  • Trả về chế độ xem của bộ sưu tập này với các phần tử được sắp xếp lại sao cho phần tử ở vị trí nhất định sẽ kết thúc trước.

    Chuỗi con của bộ sưu tập lên tới i được chuyển sang sau chuỗi con bắt đầu tại i . Thứ tự của các phần tử trong mỗi phân vùng không thay đổi.

    let a = [10, 20, 30, 40, 50, 60, 70]
    let r = a.rotated(shiftingToStart: 3)
    // r.elementsEqual([40, 50, 60, 70, 10, 20, 30])
    

    Tuyên ngôn

    func rotated(shiftingToStart i: Index) -> RotatedCollection<Self>

    Thông số

    i

    Vị trí trong bộ sưu tập phải là vị trí đầu tiên trong kết quả. i phải là một chỉ mục hợp lệ của bộ sưu tập.

    Giá trị trả về

    Chế độ xem được xoay trên các phần tử của bộ sưu tập này, sao cho phần tử tại i là đầu tiên.

  • Tuyên ngôn

    func stablyPartitioned(
      isSuffixElement p: (Element) -> Bool
    ) -> [Element]
  • Trả về chỉ mục của phần tử đầu tiên trong bộ sưu tập khớp với vị từ.

    Bộ sưu tập phải được phân vùng theo vị ngữ, như thể self.partition(by: predicate) đã được gọi.

    • Hiệu quả: Hầu hết các lệnh gọi log(N) của predicate , trong đó N là độ dài của self . Hầu hết các hoạt động bù đắp chỉ mục log(N) nếu self tuân thủ RandomAccessCollection ; nhiều nhất N hoạt động như vậy nếu không.

    Tuyên ngôn

    func partitionPoint(
      where predicate: (Element) throws -> Bool
    ) rethrows -> Index
  • Trả về self.map(transform) , được tính song song trên các khối có cùng kích thước minBatchSize hoặc minBatchSize + 1 .

    Đòi hỏi

    transform là an toàn để gọi từ nhiều luồng.

    Tuyên ngôn

    func concurrentMap<B>(
      minBatchSize: Int = 1,
      _ transform: (Element) -> B
    ) -> [B]
  • Trả về một tập hợp các phần tử của self tại các vị trí và theo thứ tự được chỉ định bởi phép selection mà không cần đọc các phần tử của một trong hai bộ sưu tập.

    Độ phức tạp

    O(1)

    Tuyên ngôn

    public func sampled<Selection: Collection>(at selection: Selection)
      -> Sampling<Self, Selection>
  • Trả về các lát không chồng chéo dài nhất của self , bắt đầu với phần tử đầu tiên của nó, có độ dài tối đa batchSize .

    Tuyên ngôn

    public func inBatches(of batchSize: Int) -> Slices<Self>
  • Trả về vị trí n trong self .

    Tuyên ngôn

    func index(atOffset n: Int) -> Index
Có sẵn ở nơi `Element`: `Collatable`
  • Kết quả của việc đối chiếu các phần tử của self .

    Tuyên ngôn

    public var collated: Element { get }
  • Trả về các phần tử của self , được đệm về hình dạng tối đa với padValue và được đối chiếu.

    Tuyên ngôn

    public func paddedAndCollated<Scalar: Numeric>(
      with padValue: Scalar, atStart: Bool = false
    ) -> Element
    where Element == Tensor<Scalar>

    Thông số

    atStart

    thêm phần đệm vào đầu nếu điều này true và phần cuối nếu ngược lại. Giá trị mặc định là false .