Tutorial 5.1 - std::queue

Obiective

Ne dorim:

  • să arătăm funcționalitățile unei cozi

std::queue

În acest tutorial vom folosi clasa std::queue din STL. Pentru mai multe detalii, vă sugerăm să citiți documentația oficială (std::queue,std::deque).

Atenție! Este nevoie să includem biblioteca queue.

#include <queue> // std::queue

Clasa std::queue oferă toate funcționalitățile uzuale pentru o coadă. Menționăm că nu există o implementare unică, astfel încât apar mici diferențe față de implementările sugerate în articol:

  • metoda enqueue se va numi push
  • metoda dequeue se va numi pop și NU va întoarce elementul eliminat
  • metoda isEmpty se va numi empty

În continuare vom prezenta un exemplu inserare de elemente într-o coadă.

#include <iostream> // std::cout
#include <queue> // std::queue
 
int main() {
	int n; // numarul de elemente din coada
	int x; // variabila temporara
	std::queue<int> myQ; // coada folosita
 
	// citire elemente si adaugare in coada
	std::cout << "n = ";
	std::cin >> n;
	for (int i = 0; i < n; ++i) {
		// citeste un alt element
		std::cout << "x = ";
		std::cin >> x; 
 
		// adauga in varful stivei
		myQ.push(x); 
 
		// afisare statistici
		std::cout << "front = " << myQ.front() << "; back = " << myQ.back() << "\n";
	}
 
	// extrage elementele din coada
	// cat timp coada contine cel putin element, extrage un element
	std::cout << "Extrag: ";
	while (!myQ.empty()) {
		x = myQ.front(); // extrage elementul
		myQ.pop(); // elimina elementul
 
		//afisare
		std::cout << x << " "; 
	}
	std::cout << "\n";
 
	// verifica daca coada mai contine elemente
	std::cout << (myQ.empty() ? "Coada goala" : "Coada contine elemente") << "\n";
 
	return 0;
}

</code>

Compilare și testare

g++ main.cpp -o main

Exemple:

./main
 
n = 5
x = 1
front = 1; back = 1
x = 2
front = 1; back = 2
x = 3
front = 1; back = 3
x = 4
front = 1; back = 4
x = 5
front = 1; back = 5
Extrag: 1 2 3 4 5 
Coada goala
sd-ca/2016/articole/tutorial-05-1.txt · Last modified: 2017/02/04 22:57 by alexandru.olteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0