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

Удалить элемент очереди - C++

Восстановить пароль Регистрация
 
Voroshek
6 / 6 / 1
Регистрация: 22.08.2011
Сообщений: 75
30.01.2013, 00:44     Удалить элемент очереди #1
Здравствуйте. Сделал всё ну практически по Липпману:
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
#include <queue>
#include <iostream>
 
using std::queue;
 
int main()
{
    const queue<int>::size_type sz = 12;
    queue<int> q;
    int a = 0;
    while (true)
    {
        std::cin >> a;
        if (a<0) { break; }
        q.push(a);
        queue<int, queue<int> > b(q);
        while (b.empty()==false)
        {
            int c = b.front();
            std::cout << c << ' ';
            b.pop();
        }
        std::cout << std::endl;
    }
    return 0;
}
но возвращает ошибку:
Bash
1
2
3
4
/usr/include/c++/4.7/bits/stl_queue.h: In instantiation of ‘void std::queue<_Tp, _Sequence>::pop()
[with _Tp = int; _Sequence = std::queue<int>]’:
a1.cpp:21:19:   required from here
/usr/include/c++/4.7/bits/stl_queue.h:240:2: error: ‘class std::queue<int>’ has no member named ‘pop_front’
Как так но мембер? А как же тогда удалять?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2013, 00:44     Удалить элемент очереди
Посмотрите здесь:

Удалить символ в начале очереди C++
Удалить первый и последний элемент очереди C++
C++ Какой элемент останется в кольце последним, если начать по очереди удалять из списка каждый n элемент
Удалить из очереди все отрицательные числа C++
C++ Удалить из очереди все отрицательные числа
C++ Максимальный элемент очереди
C++ Удалить с очереди каждый второй элемент
Удалить из очереди все отрицательные числа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
30.01.2013, 01:54     Удалить элемент очереди #2
Ты там чуток ошибся
отут от queue<int, queue<int> > b(q);
наскоко я знаю queue ето адаптер а ты передаеш снова адаптер, а нужно основу кондейнер либо deque либо list

вот работающий код:
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
#include <queue>
#include <iostream>
#include <deque>
 
using std::queue;
 
int main()
{
    const queue<int >::size_type sz = 12;
    queue<int> q;
    int a = 0;
    while (true)
    {
        std::cin >> a;
        if (a<0) { break; }
        q.push(a);
        queue<int, std::deque<int> > b(q);
        while (b.empty()==false)
        {
            int c = b.front();
            std::cout << c << ' ';
            b.pop();
        }
        std::cout << std::endl;
    }
    return 0;
}
Voroshek
6 / 6 / 1
Регистрация: 22.08.2011
Сообщений: 75
30.01.2013, 11:17  [ТС]     Удалить элемент очереди #3
А, понятно, спасибо
Yandex
Объявления
30.01.2013, 11:17     Удалить элемент очереди
Ответ Создать тему
Опции темы

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