Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Jaksn
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
#1

Очередь на основе STL - C++

08.05.2011, 18:35. Просмотров 1640. Ответов 1
Метки нет (Все метки)

Народ, помогите пожалуйста! Я сейчас прохожу стеки, очереди и деки на основе STL. Плохо шарю во всех этих стеках, поэтому попросил у друга программу, чтоб разобраться с этим. Он дал вот эту прогу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <queue>
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
 
void main()
{setlocale (LC_ALL, "Russian");
srand((unsigned) time(NULL));
int b,action,n;
queue <int> Q;
cout << "Введите количество элементов очереди: ";
cin >> n;
for (int i=0; i<n; i++)
Q.push (b=rand() % 50);
queue <int> newQ = Q;
 
while (!newQ.empty()){
cout << newQ.front() << " ";
newQ.pop();}
cout << "\nПервый элемент очереди: " << Q.front()<<endl;
cout << "Последний элемент очереди: " << Q.back()<<endl;
newQ = Q;
newQ.pop();
cout << "Удаляем первый элемент очереди: \n";
Q = newQ;
cout << "Оставшиеся элементы \n";
while (!newQ.empty()){
    cout << newQ.front() << " ";
    newQ.pop();}
cout << "\nКоличество элементов очереди: " << Q.size(); 
_getch();
}
Я впринципе понял все функции (pop, push и т.д), но я не понимаю некоторых мест программы. Почему делается вот эта часть.
while (!newQ.empty()){
cout << newQ.front() << " ";
newQ.pop();}
Таким образом очередь выводится на экран, но зачем объявлять еще одну очередь newQ и после cout << newQ.front() << писать newQ.pop(). И еще один момент. Мне нужно сделать так, чтобы прога удаляла не только первый элемент, а столько элементов, сколько пользователь введет с клавиатуры. Помогите плиз.

 Комментарий модератора 
Используйте теги форматирования кода!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2011, 18:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очередь на основе STL (C++):

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.) - C++
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

STL очередь - C++
Доброго времени суток!:) Изучаю STL и решил сделать класс для работы с очередью, и получилось что-то вроде этого... сильно не кричите,...

Очередь с приоритетом из STL - C++
Объясните зачем при объявлении priority_queue в качестве шаблона указывают вектор ? В чем разница между : priority_queue &lt;string&gt; p; ...

STL, очередь с приоритетом - C++
у меня есть очередь с приоритетом, есть функции ввода и вывода в функции MinE после того как я нашел минимальный элемент, мне нужно...

Библиотека STL: очередь с приоритетом - C++
Пытаюсь реализовать очередь с приоритетом, два класса ВИП- персона и простая персона. для этого создал два класса и запихнул потом обьекты...

Создать stl очередь, заполнить ее случайным образом и отсортировать - C++
вопрос в заголовке, заранее спасибо.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
08.05.2011, 19:28 #2
C++
1
newQ.pop()
ты удаляешь элемент из очереди!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2011, 19:28
Привет! Вот еще темы с ответами:

Как загнать в STL очередь объекты другого класса с приоритетом? - C++
В общем есть класс class Clientсo { char first_name; char last_name; bool sex; int age; int ID;

Создать контейнер по типу очередь, состоящий из символов (библиотека STL) - C++
Ребят, помогите пожалуйста решить задачу : Создать контейнер по типу очередь, состоящий из символов. Данные в очередь ввести с клавиатуры....

Очередь на основе массива - C++
когда создаю пустую очередь размерностью 2 в main() вот так BoundQueue &lt;int&gt; a(2); выводится ошибка:main.cpp(13) : error C2259:...

Очередь на основе массива - C++
Очередью (англ. queue) называется хранилище данных, в котором можно работать только с одним элементом: тем, который был добавлен в стек...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru