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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму элементов двумерного массива http://www.cyberforum.ru/cpp-beginners/thread725959.html
Вообщем задача такая. Найти сумму элементов двумерного массива, принадлежащих интервалу . Начало есть а вот продолжение не знаю, как зделать через интервал. #include <iostream> #include...
C++ Работа с двумерными массивами ( Определить: количество столбцов, номер строки) Дана целочисленная прямоугольная матрица. Определить: 1. Количество столбцов, содержащих хотя бы один отрицательный элемент. 2. Номер строки, содержащей наибольшее количество положительных... http://www.cyberforum.ru/cpp-beginners/thread725929.html
C++ Циклы с предусловием и с постусловием (while, do.while)
6. Вводится точность e. Вычислить сумму ряда Вычисления продолжать до тех пор, пока очередное слагаемое не станет меньше e.
Вывести число в двоичном коде C++
решите задачу, пожалуйста: вывести 1 байтовое целое число без знака в 2-ом коде ( а) с использованием операции деления, б) с использованием двоичной маски - без деления
C++ Программа вылетает при использовании fgetc() http://www.cyberforum.ru/cpp-beginners/thread725917.html
Программа доходит до функции fgetc() (313 строка) и вылетает. В чем может быть причина? Вот код #include <stdlib.h> #include <stdio.h> #include <string.h> //#include <iostream> //#include...
C++ Даны две диагонали ромба. Вычислить площадь и периметр этого ромба нужен код программы,заранее спасибо подробнее

Показать сообщение отдельно
olya18
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 21
10.12.2012, 12:18  [ТС]
Ой, я не тот отправила...
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru