logo

Front v C++ Standard Template Library (STL)

Fronty sú typom kontajnerových adaptérov, ktoré fungujú v usporiadaní typu prvý dovnútra prvý von (FIFO). Prvky sa vkladajú zozadu (koniec) a spredu sa odstraňujú. Fronty využívajú zapuzdrený objekt deque resp zoznam (trieda sekvenčného kontajnera) ako jeho základný kontajner, ktorý poskytuje špecifickú sadu členských funkcií na prístup k jeho prvkom.

Nasleduje príklad na demonštráciu fronty a jej rôznych metód.



CPP

vlastnosti java






// CPP code to illustrate Queue in> // Standard Template Library (STL)> #include> #include> using> namespace> std;> // Print the queue> void> showq(queue<>int>>gq)> {> >queue<>int>>g = gq;> >while> (!g.empty()) {> >cout <<>' '> << g.front();> >g.pop();> >}> >cout <<>' '>;> }> // Driver Code> int> main()> {> >queue<>int>>gquiz;> >gquiz.push(10);> >gquiz.push(20);> >gquiz.push(30);> >cout <<>'The queue gquiz is : '>;> >showq(gquiz);> >cout <<>' gquiz.size() : '> << gquiz.size();> >cout <<>' gquiz.front() : '> << gquiz.front();> >cout <<>' gquiz.back() : '> << gquiz.back();> >cout <<>' gquiz.pop() : '>;> >gquiz.pop();> >showq(gquiz);> >return> 0;> }>



>

>

Výkon

The queue gquiz is : 10 20 30 gquiz.size() : 3 gquiz.front() : 10 gquiz.back() : 30 gquiz.pop() : 20 30>

Metódy fronty sú:

koľko váži kat timpf

Časová zložitosť a definícia nasledujúcich funkcií sú nasledovné:

front::prázdny() O(1)
front::veľkosť() O(1)
fronta::miesto() O(1)
front::front() O(1)
fronta::späť() O(1)
fronta::push(g) O(1)
fronta::pop() O(1)
Metóda Definícia
front::prázdny() Vráti, či je front prázdny. Ak je front prázdny, vráti hodnotu true, inak vráti hodnotu false.
front::veľkosť() Vráti veľkosť frontu.
fronta::swap() Vymeňte obsah dvoch frontov, ale fronty musia byť rovnakého typu údajov, aj keď veľkosti sa môžu líšiť.
fronta::miesto() Vložte nový prvok do kontajnera frontu, nový prvok sa pridá na koniec frontu.
front::front() Vráti odkaz na prvý prvok frontu.
fronta::späť() Vráti odkaz na posledný prvok frontu.
fronta::push(g) Pridá prvok „g“ na koniec frontu.
fronta::pop() Odstráni prvý prvok frontu.

C++ program pre niektoré ďalšie metódy

C++




mamta kulkarni herec
// CPP code to illustrate Queue operations in STL> // Divyansh Mishra -->divyanshmishra101010> #include> #include> using> namespace> std;> // Print the queue> void> print_queue(queue<>int>>q)> {> >queue<>int>>teplota = q;> >while> (!temp.empty()) {> >cout << temp.front()<<>' '>;> >temp.pop();> >}> >cout <<>' '>;> }> // Driver Code> int> main()> {> >queue<>int>>q1;> >q1.push(1);> >q1.push(2);> >q1.push(3);> >cout <<>'The first queue is : '>;> >print_queue(q1);> > >queue<>int>>q2;> >q2.push(4);> >q2.push(5);> >q2.push(6);> >cout <<>'The second queue is : '>;> >print_queue(q2);> > > >q1.swap(q2);> > >cout <<>'After swapping, the first queue is : '>;> >print_queue(q1);> >cout <<>'After swapping the second queue is : '>;> >print_queue(q2);> > >cout

>

>

Výkon

The first queue is : 1 2 3 The second queue is : 4 5 6 After swapping, the first queue is : 4 5 6 After swapping the second queue is : 1 2 3 0>

Časová a priestorová zložitosť operácií v tomto kóde je nasledovná:

funkcia print_queue:

Časová zložitosť: O(n), kde n je počet prvkov vo fronte.
Priestorová zložitosť: O(n), kde n je počet prvkov vo fronte.
q1.push(1), q1.push(2), q1.push(3), q2.push(4), q2.push(5), q2.push(6):

Časová zložitosť: O(1) pre každú operáciu push.
Priestorová zložitosť: O(n), kde n je celkový počet prvkov v oboch frontoch.
q1.swap(q2):

Časová zložitosť: O(1) pre každú swapovú operáciu.
Priestorová zložitosť: O(1), pretože táto operácia iba zamieňa interné ukazovatele dvoch frontov.
q1.empty():

virtuálna pamäť

Časová zložitosť: O(1), pretože táto operácia jednoducho skontroluje, či je front prázdny.
Priestorová zložitosť: O(1), keďže na túto operáciu sa nepoužíva žiadny priestor navyše.
Celkovo je časová a priestorová zložitosť tohto kódu primeraná a efektívna pre typické prípady použitia.

Najnovšie články o C++ Queue