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

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

Войти
Регистрация
Восстановить пароль
 
 
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
#1

Ошибка: iterator not decrementable - C++

10.12.2012, 12:10. Просмотров 890. Ответов 18
Метки нет (Все метки)

компилятор ошибок не выдает, а когда программа начинает работать она периодически выдает такое сообщение - iterator not decrementable, не могу понять в чем оштика, потому что иногда она работает нормально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 12:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка: iterator not decrementable (C++):

vector iterator not decrementable - C++
Здраствуйте! Хочу вывести вектор задом-наперед, все нормально, но после того как оно выводит вектор сразу выскакивает ошибка vector...

Expression: vector iterator not decrementable - C++
Требуется в двух файлах удалить повторяющие строки (до первого вхождения) Примеры: Name_N <TEXT> ...

std::sort(iterator, iterator, method) подскажите как исправить - C++
Уважаемые Знатоки!!! Вашему вниманию предоставляю код: #include "stdafx.h" #include <vector> #include <algorithm> class...

Ошибка list iterator not dereferencable - C++
Ошибка при использовании итератора. Хэлп, сос :cry: void client_login(list<client> client_list) { char name, login, password,...

Ошибка list iterator not incrementable - C++
код: std::list<Platform * > Platform::Platform_list; //статическое поле класса Platform перебираем элементы и удаляем их при...

Ошибка в роботе с контейнером: set iterator not incrementable - C++
Задание:Дано предложение.Какие большие и маленькие буквы с этих 'k','p','s','t','f','h','c' не содержатся в предложении. Обязательным...

18
Vourhey
Почетный модератор
6486 / 2260 / 123
Регистрация: 29.07.2006
Сообщений: 12,536
10.12.2012, 12:11 #2
olya18, ща, телепатов подгоним. Они без кода тебе все расскажут. Оля, башкой думай, как вопрос задаешь.
1
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
10.12.2012, 12:11 #3
А можно Код???
0
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
10.12.2012, 12:12  [ТС] #4
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
//Удаление
    int vremya=400;
    int ud=0;
    for(vector<Samolet*>::iterator i=www.begin();i!=www.end();i++)
    {
        if((*i)->getMaxTime()<vremya)
        {
            ud++;
            Samolet *v=*i;
            i=www.erase(i);
            i--;
            delete v;
        }
    }
    cout<<" _____________________________________________________________________________\n"
        <<"|                                  Удаление                                   |\n"
        <<" _____________________________________________________________________________\n"
        <<"|    Вес     |  Скорость |Координаты |  Максимальное  |Время тех   |Количество|\n"
        <<"|            |           |           |  время полёта  |обслуживания|    мест  |\n"
        <<" _____________________________________________________________________________\n";
    for(int i=0;i<[url]www.size();[/url] ;i++[/url])
    {   
        PassengerPlane *pas_plane;
        if(pas_plane=dynamic_cast<PassengerPlane*>(www[i]))
            pas_plane->print();
        else
            www[i]->print();    
    }
    cout<<"______________________________________________________________________________|\n";
    cout<<"Самолёты с максимальным временем полета меньше 400 минут: "<<ud<<"\n";
    //Очистка
    for(vector<Samolet*>::iterator i=www.begin();i!=www.end();i++)
        delete *i;
    [url]www.clear();[/url]
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
10.12.2012, 12:15 #5
А можно НОРМАЛЬНЫЙ и РАБОТАЮЩИЙ код?????

Добавлено через 52 секунды
Можно полностью весь код ???
0
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
10.12.2012, 12:16  [ТС] #6
а еще когда я нажимаю пропустить выдается еще одно сообщение - "Standart C++ Libreas Out of range" &&0
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
10.12.2012, 12:16 #7
Код пожалуйста.....................
0
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
10.12.2012, 12:18  [ТС] #8
Ой, я не тот отправила...
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
// lab_6_OOP.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "string.h"
#include "PassengerPlane.h"
#include "Samolet.h"
#include <vector>
#include <time.h>
#include <algorithm>
#include <clocale>
#include <stdlib.h>
#include <iostream>
 
#define N 100
 
using namespace std;
 
bool MyCompare(Samolet *a, Samolet *b)
{
    PassengerPlane *pas_plane1, *pas_plane2;
    if((pas_plane1=dynamic_cast<PassengerPlane*>(a))&&(pas_plane2=dynamic_cast<PassengerPlane*>(b)))
    {
        if((pas_plane1->getSpeed())>=(pas_plane2->getSpeed()))
            return false;
        else
            return true;
    }
    else
        if(!(pas_plane1=dynamic_cast<PassengerPlane*>(a))&&!(pas_plane2=dynamic_cast<PassengerPlane*>(b)))
        {
            if((a->getSpeed()>=(b->getSpeed())))
                return false;
            else
                return true;
        }
        else
        {
            if(!(pas_plane1=dynamic_cast<PassengerPlane*>(a))&&(pas_plane2=dynamic_cast<PassengerPlane*>(b)))
                return true;
            else
                if((pas_plane1=dynamic_cast<PassengerPlane*>(a))&&!(pas_plane2=dynamic_cast<PassengerPlane*>(b)))
                    return false;
        }
    return true;
}
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
int _tmain(int argc, _TCHAR* argv[])
{
    vector<Samolet*> www;
    setlocale (LC_CTYPE,"rus");
    srand(time(NULL));
    int n, r,kol_pas_plane, kol_sam;
    kol_pas_plane = kol_sam = 0;
    n=2+rand()%N;
    cout<<" _____________________________________________________________________________\n"
        <<"|                             Начальные данные:                               |\n"
        <<" _____________________________________________________________________________\n"
        <<"|    Вес     |  Скорость |Координаты |  Максимальное  |Время тех   |Количество|\n"
        <<"|            |           |           |  время полёта  |обслуживания|    мест  |\n"
        <<" _____________________________________________________________________________\n";
    for(int i=0; i<n; i++)
    {
        r=1+rand()%2;
        if(r==1)
        {
            double v = 200 + rand()%360;
            double s = 180 + rand()%720;
            double x = 10 + rand()%90;
            double y = 10 + rand()%90;
            double mt = 60 + rand()%540;
            double tt = 60 + rand()%430;
            Samolet *samolet = new Samolet(v,s,x,y,mt,tt);
            [url]www.push_back(samolet);[/url]
            kol_sam++;
            samolet->print();
        }
        else
        {
            double v = 200 + rand()%360;
            double s = 180 + rand()%720;
            double x = 10 + rand()%90;
            double y = 10 + rand()%90;
            double mt = 60 + rand()%540;
            double tt = 60 + rand()%430;
            int km = 50 + rand()%450;
            PassengerPlane *pas_plane=new PassengerPlane(v,s,x,y,mt,tt,km);
            [url]www.push_back(pas_plane);[/url]
            kol_pas_plane++;
            pas_plane->print();
        }
    }
    cout<<"|_____________________________________________________________________________|\n\n\n";
    //Сортировка
    sort([url]www.begin(),www.end(),MyCompare);[/url]
    cout<<"Частные самолёты: "<<kol_sam
        <<"\nПассажирские самолеты: "<<kol_pas_plane<<"\n";
    cout<<" _____________________________________________________________________________\n"
        <<"|                                Сортировка                                   |\n"
        <<" _____________________________________________________________________________|\n"
        <<"|    Вес     |  Скорость |Координаты |  Максимальное  |Время тех   |Количество|\n"
        <<"|            |           |           |  время полёта  |обслуживания|    мест  |\n"
        <<" _____________________________________________________________________________\n";
    for(int i=0;i<[url]www.size();i++[/url])
    {   
        PassengerPlane *pas_plane;
        if(pas_plane=dynamic_cast<PassengerPlane*>(www[i]))
            pas_plane->print();
        else
            www[i]->print();
    }
    //Удаление
    int vremya=400;
    int ud=0;
    for(vector<Samolet*>::iterator i=www.begin();i!=www.end();i++)
    {
        if((*i)->getMaxTime()<vremya)
        {
            ud++;
            Samolet *v=*i;
            i=www.erase(i);
            i--;
            delete v;
        }
    }
    cout<<" _____________________________________________________________________________\n"
        <<"|                                  Удаление                                   |\n"
        <<" _____________________________________________________________________________\n"
        <<"|    Вес     |  Скорость |Координаты |  Максимальное  |Время тех   |Количество|\n"
        <<"|            |           |           |  время полёта  |обслуживания|    мест  |\n"
        <<" _____________________________________________________________________________\n";
    for(int i=0;i<[url]www.size();i++[/url])
    {   
        PassengerPlane *pas_plane;
        if(pas_plane=dynamic_cast<PassengerPlane*>(www[i]))
            pas_plane->print();
        else
            www[i]->print();    
    }
    cout<<"______________________________________________________________________________|\n";
    cout<<"Самолёты с максимальным временем полета меньше 400 минут: "<<ud<<"\n";
    //Очистка
    for(vector<Samolet*>::iterator i=www.begin();i!=www.end();i++)
        delete *i;
    [url]www.clear();[/url]
    return 0;
}
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
10.12.2012, 12:18 #9
Что за <Include.h> ???
0
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
10.12.2012, 12:21  [ТС] #10
Вот программа полностью
0
Вложения
Тип файла: rar prog.rar (1,020.6 Кб, 10 просмотров)
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
10.12.2012, 12:26  [ТС] #11
Она работает, но не всегда..

Добавлено через 1 минуту
Она работает, но не всегда
0
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.12.2012, 12:50 #12
olya18, а можно само задание? у меня ощущение, что вы его не до конца поняли. Я в коде вижу виртуальные методы. Казалось бы, полиморфизм, но местами идут динамик касты
0
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
10.12.2012, 12:52  [ТС] #13
Задание такое-Разработать программу, в которой объекты помещаются и обрабатываются в
объекте - контейнере.
0
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.12.2012, 12:56 #14
olya18, А что-то про полиморфизм, виртуальные функции и наследование было в задании?
0
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
10.12.2012, 13:23  [ТС] #15
это было в предыдущих лабораторных

Добавлено через 3 минуты
то есть я их кусами пишу, каждый раз как то переделывая, вот сейчас нужно с контейнером

Добавлено через 21 минуту
I.M., так из-за чего она может так работать??
0
10.12.2012, 13:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 13:23
Привет! Вот еще темы с ответами:

Ошибка “vector<bool> erase iterator outside range” при работе алгоритма Хаффмана - C++
Проблема с функцией BuildTable. Компилируется, но в процессе работы возникает ошибка. // Huffmann.cpp: определяет точку входа для...

Ошибка при запуске программы "vector iterator not incrementable" - C++
при запуске программы (без разницы какой функции) вылетает ошибка (заг. темы) как это исправить? мне кажется, что проблема в том, что я...

Ошибка "iterator not dereferencable" при использовании ссылки - C++
Всем привет. Без ссылки все работает, с ссылкой ошибка: &quot;iterator not dereferencable&quot;. С ссылкой: void func(vector&lt;string&gt;&amp; arr) ...

Iterator - C++
vector &lt;char&gt;::iterator stek; *stek = '0'; После второй строчки программа при выполнении вылетает, почему?


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

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

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