while ( in >> x, !in.eof()) s.push(x); while (! s.empty()){ x = s.top(); cout << x << " "; s.pop(); } } inpnum файлының құрамы:
56 34 54 0 76 23 51 11 51 11 76 88 Программа жұмысының нəтижесі:
88 76 11 51 11 51 23 76 0 54 34 56 Кезектер (queue) Кезекте (анықтамасын «Кезектер» бөлімінен, 130 б. қараңыз) оның
өлшемін өзгертетін екі операцияға рұқсат берілгені белгілі, олар – кезек
соңына элементті қосу жəне басынан таңдау. Кезек – екіжақты кезектің не-
месе тізімнің негізінде жүзеге асыруға болатын адаптер (вектор жарамайды,
өйткені онда басынан таңдау операциясы жоқ) болып табылады.
STL кітапханасында кезек келісім бойынша екіжақты кезектің негізінде
анықталған:
template > class queue { protected: Container c; public: explicit queue(const Container& = Container()); bool empty() const {return c.empty();} size_type size() const {return c.size();} value_type& front() {return c.front();} const value_type& front() const {return c.front();} value_type& back() {return c.back();} const value_type& back() const {return c.back();} void push(const value_type& x) {c.push_back(x);} void pop() {c.pop_front();} }; Мысалдағы
front жəне
back əдістері сəйкесінше кезектің басында жəне
соңында орналасқан элементтердің мəндерін алу үшін қолданылады (бұл кез-
де элементтер кезекте сақталады).
Кезекпен жұмыс істеу мысалы (программа файлдан кезекке сандар енгізеді
жəне кезек босаған кезге дейін одан таңдауды орындайды):