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

Реализую класс очередь с использованием двух стеков.ошибка итератор dequee is not dereferanceble - C++

Восстановить пароль Регистрация
 
_Ант_
 Аватар для _Ант_
-113 / 1 / 0
Регистрация: 18.10.2012
Сообщений: 30
03.03.2013, 03:16     Реализую класс очередь с использованием двух стеков.ошибка итератор dequee is not dereferanceble #1
Реализую класс очередь с использованием двух стеков.
Вот, все получается, только pop плохо работает..
ошибка итератор dequee is not dereferanceble...
что это значит? как исправить?

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# include <iostream>
# include <stack>
using namespace std;
template<class T>
class que {
private:
    stack<T> *oldest;
    stack<T> *newest;
    void printdemo(bool ind){
        stack<T> *s = oldest;
        if (ind == 0) s = newest;
        else s = newest;
        while (!s->empty()){
            cout<<s->top()<<" ";
            s->pop();
        }
    }
public:
    que(){ oldest = new stack<T>; newest = new stack<T>;}
 
    void push(T _val){
        newest->push(_val);
    }
    void print (){
        if (oldest->empty()){ printdemo(0);return;}
        printdemo(0);
        printdemo(1);
        
    }
    void pop(){
        T temp;
        if (oldest->empty()){
        while (!newest->empty()){
            temp = newest->top();
            newest->pop();
            oldest->push(temp);
        }
        }
        cout<<oldest->top();
        oldest->pop();
 
    }
};
 
int main(){
    setlocale( LC_ALL,"Russian" );
 
    que<int> l;
    l.push(1);l.push(2);l.push(3);
    l.print();
    l.pop();
    l.print();
 
 
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 03:16     Реализую класс очередь с использованием двух стеков.ошибка итератор dequee is not dereferanceble
Посмотрите здесь:

сложение двух полиномов, представленных в виде стеков C++
Разработайте класс стеков C++
C++ Собственный класс-итератор
Динамически струтуры данных. Даны указатели P1 и P2 на вершины двух непустых стеков... C++
C++ Функция, дружественная классу, вложенному в шаблонный класс, или как написать итератор.
Обмен первыми половинами двух стеков C++
C++ Создайте класс, в котором есть ostream& operator<<. Класс должен содержать очередь с приоритетом
Класс итератор для стека C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.03.2013, 07:55     Реализую класс очередь с использованием двух стеков.ошибка итератор dequee is not dereferanceble #2
При запуске эту ошибку выдаёт. Скорее всего, из-за того, что после printdemo() оба стека пусты. Потом, в pop() попытки операций с путым стеком(cout<<oldest->top(); oldest->pop().
Yandex
Объявления
03.03.2013, 07:55     Реализую класс очередь с использованием двух стеков.ошибка итератор dequee is not dereferanceble
Ответ Создать тему
Опции темы

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