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

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

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

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

08.05.2011, 18:35. Просмотров 1557. Ответов 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(). И еще один момент. Мне нужно сделать так, чтобы прога удаляла не только первый элемент, а столько элементов, сколько пользователь введет с клавиатуры. Помогите плиз.

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

Очередь на основе массива C++
Создать stl очередь, заполнить ее случайным образом и отсортировать C++
Очередь на основе массива C++
C++ очередь на основе двусвязного списка
C++ STL очередь
Очередь на основе динамического массива C++
C++ STL, очередь с приоритетом
C++ Очередь на основе массива
Библиотека STL: очередь с приоритетом C++
Как загнать в STL очередь объекты другого класса с приоритетом? C++
Создать контейнер по типу очередь, состоящий из символов (библиотека STL) C++
C++ Очередь с приоритетом из STL

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
08.05.2011, 19:28     Очередь на основе STL #2
C++
1
newQ.pop()
ты удаляешь элемент из очереди!
Yandex
Объявления
08.05.2011, 19:28     Очередь на основе STL
Ответ Создать тему
Опции темы

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