logo

Rinda C++ standarta veidņu bibliotēkā (STL)

Rindas ir konteinera adapteru veids, kas darbojas FIFO (pirmais iekšā pirmais ārā) izkārtojumā. Elementi tiek ievietoti aizmugurē (galā) un tiek dzēsti no priekšpuses. Rindas izmanto iekapsulētu objektu deque vai sarakstu (secīgā konteinera klase) kā tā pamatā esošo konteineru, nodrošinot īpašu dalībnieku funkciju kopu, lai piekļūtu tā elementiem.

Tālāk ir sniegts piemērs, lai demonstrētu rindu un tās dažādās metodes.



CPP

saraksta mezgls 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;> }>



>

>

Izvade

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

Rindas metodes ir šādas:

kas ir f5 uz tastatūras

Šādu funkciju laika sarežģītība un definīcijas ir šādas:

rinda::empty() O(1)
rinda::size() O(1)
rinda::vieta() O(1)
rinda::front() O(1)
rinda::atpakaļ() O(1)
rinda::push(g) O(1)
rinda::pop() O(1)
Metode Definīcija
rinda::empty() Atgriež, vai rinda ir tukša. Tas atgriež patieso vērtību, ja rinda ir tukša, pretējā gadījumā atgriež false.
rinda::size() Atgriež rindas lielumu.
rinda::swap() Apmainīties ar divu rindu saturu, taču rindām ir jābūt viena veida datiem, lai gan izmēri var atšķirties.
rinda::vieta() Ievietojiet jaunu elementu rindas konteinerā, jaunais elements tiek pievienots rindas beigās.
rinda::front() Atgriež atsauci uz rindas pirmo elementu.
rinda::atpakaļ() Atgriež atsauci uz rindas pēdējo elementu.
rinda::push(g) Rindas beigās pievieno elementu “g”.
rinda::pop() Dzēš pirmo rindas elementu.

C++ programma dažām citām metodēm

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

np.mean
>

>

Izvade

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>

Šī koda darbību sarežģītība laikā un telpā ir šāda:

print_queue funkcija:

Laika sarežģītība: O(n), kur n ir rindā esošo elementu skaits.
Telpas sarežģītība: O(n), kur n ir elementu skaits rindā.
q1.push(1), q1.push(2), q1.push(3), q2.push(4), q2.push(5), q2.push(6):

Laika sarežģītība: O(1) katrai push darbībai.
Telpas sarežģītība: O(n), kur n ir kopējais elementu skaits abās rindās.
q1.swap(q2):

Laika sarežģītība: O(1) katrai mijmaiņas operācijai.
Telpas sarežģītība: O(1), jo šī darbība apmaina tikai abu rindu iekšējos rādītājus.
q1.empty():

modificēt failu linux

Laika sarežģītība: O(1), jo šī darbība vienkārši pārbauda, ​​vai rinda ir tukša.
Telpas sarežģītība: O(1), jo šai darbībai netiek izmantota papildu vieta.
Kopumā šī koda sarežģītība laikā un telpā ir saprātīga un efektīva tipiskiem lietošanas gadījumiem.

Jaunākie raksti par C++ rindu