logo

Eilė C++ standartinėje šablonų bibliotekoje (STL)

Eilės yra konteinerių adapterių tipas, veikiantis pagal FIFO (pirmas pirmas iš pradžių) tipą. Elementai įterpiami gale (gale) ir ištrinami iš priekio. Eilėse naudojamas inkapsuliuotas objektas deque arba sąrašą (nuosekliojo konteinerio klasė) kaip pagrindinį konteinerį, suteikiantį konkretų narių funkcijų rinkinį, kad būtų galima pasiekti jo elementus.

Toliau pateikiamas pavyzdys, rodantis eilę ir įvairius jos metodus.



CPP

interneto trūkumai






// 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;> }>



>

>

Išvestis

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

Eilių metodai yra šie:

mvc java

Laiko sudėtingumas ir šių funkcijų apibrėžimas yra toks:

eilė::empty() O(1)
eilė::dydis() O(1)
eilė::vieta() O(1)
eilė::priekis() O(1)
eilė::atgal() O(1)
eilė::push(g) O(1)
eilė::pop() O(1)
Metodas Apibrėžimas
eilė::empty() Grąžina, ar eilė tuščia. Jis grąžina teisingą, jei eilė tuščia, kitu atveju grąžina false.
eilė::dydis() Grąžina eilės dydį.
eilė::swap() Keiskitės dviejų eilių turiniu, tačiau eilės turi būti to paties tipo duomenų, nors dydžiai gali skirtis.
eilė::vieta() Į eilės konteinerį įterpkite naują elementą, naujas elementas įtraukiamas į eilės pabaigą.
eilė::priekis() Grąžina nuorodą į pirmąjį eilės elementą.
eilė::atgal() Grąžina nuorodą į paskutinį eilės elementą.
eilė::push(g) Eilės pabaigoje prideda elementą „g“.
eilė::pop() Ištrina pirmąjį eilės elementą.

C++ programa, skirta kai kuriems kitiems metodams

C++




// 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>>temp = 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

>

e r modelio pavyzdžiai
>

Išvestis

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>

Šio kodo operacijų laiko ir erdvės sudėtingumas yra toks:

print_queue funkcija:

Laiko sudėtingumas: O(n), kur n yra elementų skaičius eilėje.
Erdvės sudėtingumas: O(n), kur n yra elementų skaičius eilėje.
q1.push(1), q1.push(2), q1.push(3), q2.push(4), q2.push(5), q2.push(6):

Laiko sudėtingumas: O(1) kiekvienai stūmimo operacijai.
Erdvės sudėtingumas: O(n), kur n yra bendras elementų skaičius abiejose eilėse.
q1.swap(q2):

Laiko sudėtingumas: O(1) kiekvienai apsikeitimo operacijai.
Erdvės sudėtingumas: O(1), nes ši operacija keičia tik vidines dviejų eilių rodykles.
q1.empty():

java if else teiginys

Laiko sudėtingumas: O(1), nes ši operacija tiesiog patikrina, ar eilė tuščia.
Erdvės sudėtingumas: O(1), nes šiai operacijai nereikia papildomos vietos.
Apskritai, šio kodo laiko ir erdvės sudėtingumas yra pagrįstas ir efektyvus įprastais naudojimo atvejais.

Naujausi straipsniai apie C++ eilę