Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
2 / 2 / 0
Регистрация: 18.05.2015
Сообщений: 15

итератор вершин АТД граф

25.12.2016, 17:46. Показов 2110. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте

Есть класс Graph, абстрактный класс Form, и наследники L и M (формы представления графа)

Делаю итератор вершин графа:
Конструктор ( ) - создает итератор вершин графа,
operator * - возвращает дескриптор вершины графа, на которую указывает итератор.

В общем, программа, компилируется, но как доходит до "vv = *It", то выход исключение: Необработанное исключение по адресу 0x00BF5459 в graph_221216.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCDD9.

Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "Graph.h"
Graph<Vertex<int, int>, Edge<int, int>> *g;
 
void Main()
{
    g = new Graph<Vertex<int,int>, Edge<int,int>>();
 
    // Тут заполняю вершинами и ребрами
 
    Graph<Vertex<int, int>, Edge<int, int>>::Iterator_V It(g);
    Vertex<int, int> *vv;
    vv = *It; // Тут ошибка возникает
}
Graph.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "Form.h"
 
template <class Vertex, class Edge> class Graph
{
protected:
    Form <Vertex, Edge> *g;
 
public:
    Graph()
    {
        g = new L<Vertex, Edge>();
    }
    class Iterator_V
    {
    public:
                Iterator_V(Graph *g1)
                {
                    g = new Form<Vertex, Edge>::Iterator_V(g1->g);
                }
    protected:
                typename Form<Vertex, Edge>::Iterator_V *g;
    }
};
Form.h
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
#include "VertexEdge.h" // Как раз дескриптор вершин и ребер
#include <vector>
 
template <class Vertex, class Edge> class Form
{
protected:
    std::vector <Vertex*> v;
    std::vector <Edge*> e;
 
public:
    virtual ~Form(){};
 
    std::vector<Vertex *> verVect() { return v; }
    std::vector<Edge *> edVect() { return e; }
 
    class Iterator_V
    {
    private:
        std::vector<Vertex *> vx;
        typename std::vector<Vertex *>::iterator iterV;
 
    public:
        Iterator_V(Form<Vertex, Edge> *g1)
        {
            vx = g->verVect();
            iterV = vx.begin();
        }
        bool virtual done()
        {
            if (iterV == vx.end()) return true;
            return false;
        };
        virtual Vertex* operator * ()
        {
            if (done()) return NULL;
            return *iterV;
        };
    protected:
        typename Form<Vertex, Edge> *g;
    };
};
Буду рад любой помощи

Добавлено через 3 часа 44 минуты
Ошибка все-таки в 26-ой строке "Form.h"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2016, 17:46
Ответы с готовыми решениями:

Неориентированный граф, вывести порядки вершин графа
Доброго времени суток. Прошу помощи. С алгоритмами работал мало, решил взяться за сложную(для меня) задачу. Можете дать подсказку...

Граф в виде матрицы смежности и количества вершин
Переписывайте тексты в тело сообщения!!!! Всем здравствуйте. Помогите доделать код программы. Задание: Дан граф в виде матрицы...

Определить степени вершин графа и если граф однородный - вывести степень однородности
Помогите пожалуйста с кодом - на входе у нас есть файл с параметрами графа вида: n m v1 u1 v2 u2 .... vm um Здесь n -...

1
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
26.12.2016, 10:02
Что такое g в 25-ой строке? Может должно быть g1?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2016, 10:02
Помогаю со студенческими работами здесь

Неориентированный невзвешенный граф: найти количество вершин, лежащих в одной компоненте связности с данной вершиной
Дан неориентированный невзвешенный граф. Для него вам необходимо найти количество вершин, лежащих в одной компоненте связности с данной...

Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка
не могу понять что должно быть результатом. может подскажете примеры? пожалуйста. Задание: Реализовать двусвязный список (list),...

Разделить граф таким образом, чтобы после обрезания ребер, у поддеревьев оставалось четное количество вершин
Разделить граф таким образом, чтобы после обрезания ребер, у поддеревьев оставалось четное количество вершин. Желательно реализовать через...

Число вершин, удаленных от пары вершин по кротчайшим маршрутам каждой из следующих длин: 1, 2, 3 и т.д., для каждой пары вершин.
Число вершин, удаленных от пары вершин по кротчайшим маршрутам каждой из следующих длин: 1, 2, 3 и т.д., для каждой пары вершин. ...

Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл
помогите очень срочно надо. считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru