Sobes.tech
Junior — Middle

Можеш ли да набројиш стандардне уграђене структуре редова у програмским језицима?

sobes.tech АИ

Одговор од АИ

U iOS-u (i općenito u Swift-u i Objective-C-u) za rad s redovima koriste se sljedeće standardne strukture i mehanizmi:

  • DispatchQueue (GCD - Grand Central Dispatch): Omogućava izvršavanje zadataka asinkrono ili sinkrono u redovima s različitim prioritetima. To nije klasični red podataka, već mehanizam upravljanja niti.

  • OperationQueue: Višeg nivoa API za upravljanje operacijama (podzadacima), koji koristi redove i omogućava postavljanje ovisnosti između operacija.

  • Array ili LinkedList: Za implementaciju vlastitih redova, mogu se koristiti nizovi ili povezane liste.

  • Swift kolekcije: U standardnoj biblioteci Swift ne postoji odvojena struktura "Queue", ali se može implementirati red na osnovu niza pomoću metoda append i removeFirst.

Primjer jednostavne implementacije reda u Swift-u:

struct Queue<T> {
    private var elements: [T] = []

    mutating func enqueue(_ value: T) {
        elements.append(value)
    }

    mutating func dequeue() -> T? {
        guard !elements.isEmpty else { return nil }
        return elements.removeFirst()
    }

    func peek() -> T? {
        return elements.first
    }
}

Dakle, za upravljanje zadacima u iOS-u najčešće se koriste DispatchQueue i OperationQueue, a za pohranu podataka može se implementirati vlastiti red.