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

Вылет при срабатывании деструктора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача по вложенным циклам http://www.cyberforum.ru/cpp-beginners/thread943920.html
Здравствуйте! Помогите растолковать код, не могу понять какой цикл к чему относится. Вот задача: Напишите программу, использующую вложенные циклы, которая запрашивает у пользователя значение...
C++ Вызов функции сразу для массива всего классов Добрый день. Я делаю класс Pixel, и в этом классе есть функция Draw(); Так вот я создаю массив этих классов. Вопрос: Как мне вызвать функцию Draw() каждого экземпляра класса, не используя циклы,... http://www.cyberforum.ru/cpp-beginners/thread943916.html
Как осуществить циклический сдвиг элементов квадратной матрицы C++
Помогите осуществить циклический сдвиг элементов квадратной матрицы размерности MXN вправо на k элементов таким образом: элементы 1-й строки сдвигаются в последный столбец сверху вниз, из него- в...
C++ Включить dep в новом проекте
как включить dep в новом проекте? использую visual studio 2010 express
C++ прочитать текстовой файл без заморочек http://www.cyberforum.ru/cpp-beginners/thread943888.html
Люди!! в билдере для чтения текстового файла делал так TStringList *List = new TStringList; List->LoadFromFile(File_name); потом к List обращался по строкам List есть ли для обычного с++...
C++ Область видимасти членов класса Почему в данном коде функция xxx не распознаёт next как член класса? template<class T> class List { ... void xxx(); private: Node<T>* prev, next; }; подробнее

Показать сообщение отдельно
_Колючий_
4 / 4 / 2
Регистрация: 05.08.2012
Сообщений: 121
26.08.2013, 17:49  [ТС]
Вот полный код

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
class MatrixGraph   
{
int **arcs; //матрица смежности
int n;      //количество вершин
 
bool noAvailible(stek<int> &existed,int current)    // нет доступных вершин
{
for (int j=0; j<n; j++) 
    if (arcs[current][j]!=0 && !existed.find(arcs[current][j])) return false;
return true;
}
 
int firstAvailible(stek<int> &existed,int current)  // одна из непройденных доступных вершин
{
    for (int j=0; j<n; j++) if (arcs[current][j]!=0 && existed.find(arcs[current][j])==false) return j;
}
 
public:
 
MatrixGraph(int vertexnumber)      //конструктор графа
{
n=vertexnumber;
arcs=new int*[vertexnumber];
for(int i=0; i<vertexnumber; i++)
arcs[i]=new int[vertexnumber];
for (int i=0; i<vertexnumber; i++)
    for(int j=0; j<vertexnumber; j++)
        arcs[i][j]=0;
 
}
 
//добавление ребра
void addArc(int from, int to, int weigth=1)
{
arcs[from][to]=weigth;
}   
//Существование ребра
bool hasArc(int from, int to)
{
return arcs[from][to];
}
 
void showMatrix()             // Контроль содержимого матрицы
{
for (int i=0; i<n; i++)
    {for(int j=0; j<n; j++)
    cout<<arcs[i][j]<<' ';
cout<<endl;}
}
 
void passInDepth(int current=0)          // Обход в глубину (не работает)
{
stek<int> backput; 
stek<int> existed; existed.add(current);
cout<<endl<<"Посещен узел № "<<current;
 
while (true)
{
    if (backput.isEmpty() && noAvailible(existed, current)) {cout<<endl<<"Все узлы посещены!"; system("pause"); return;}
    if (noAvailible(existed, current)) {current=backput.popTop(); continue;}
backput.add(current); current=firstAvailible(existed, current); existed.add(current); cout<<endl<<"Посещен узел № "<<current;
}
}
 
~MatrixGraph()                   // деструктор
{
    
for (int i=0; i<n; i++)
    delete []arcs[n];
delete []arcs;
    }
 
};
Добавлено через 40 секунд
Еще применяется стек

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
template<class S>
class stek                //описание стека
{protected:
    struct Item
    {
        S data;
        Item *next;
    };
Item *top;
 
public: 
    
stek(): top(NULL){}    //конструктор стека
 
bool isEmpty() const //Проверка стека на пустоту
{return (top==NULL);}
 
void add(S data)         //добавление эллемента в стек
{Item *temp=new Item;
temp->data=data;
temp->next=top;
top=temp;}
 
void show() const             //Просмотр стека (в случае, если можно вывести на экран)
{
Item *current=top;
while(current)
{
cout<<' '<<current->data;
current=current->next;
}
cout<<endl;
}
 
bool find (S data) const
{
Item *current=top;
while(current)
{
if (data==current->data)
    return true;
current=current->next;
}
return false;
}
 
S first() const              // Получение данных с вершины
{
    return top->data;}
 
void pop()           // удаление вершины
{Item *temp;
if (top)
{temp=top;
top=top->next;
delete temp;}
}
 
S popTop()             // удаление вершины с получением информации
{Item *temp; S data; 
temp=top; data=top->data;
top=top->next;
delete temp;
return data;
}
 
~stek()                //деструктор стека
{
Item *temp=top;
while (top)
{   temp=top;
    top=top->next;
    delete temp;
}
 
}
 
 
};
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.