В архиве файлы проекта (узлы, связи, сцена с отображением. Класс заполнитель сцены и main). Также прикреплена картинка, которая иллюстрирует в каком случае будет расти память при увеличении чила узлов.
Под катом метод в котором создаётся тестовый граф. Это в файле GraphWidget.cpp
Раскрывающийся текст
void GraphWidget::DoTestGraph()
{
QSharedPointer<GraphStruct> testGraph;
testGraph = QSharedPointer<GraphStruct>(new GraphStruct);
for (size_t ind = 0; ind < 10; ++ind) // Создаём узлы (горизонтальное колитчество узлов)
{
for (size_t jnd = 0; jnd < 10; ++jnd) // Вертикальное количество узлов
{
GraphStruct::GraphVertex testvertex(QPoint(50*ind, 50*jnd), "node", "node_descr");
testGraph->vertexList.push_back(testvertex);
}
}
for (size_t ind = 0; ind < testGraph->vertexList.size() - 3; ++ind) // Создаём связи
{
GraphStruct::GraphEdge testedge("link", "link_desc", 0, ind + 1); // Завязываем все связи на 1 узел. Достаточено 3600 - улов и связей чтобы увидеть как начинает расти выделение памяти
testGraph->edgeList.push_back(testedge);
}
graphView->CreateGraph(testGraph);
}
А вот тут начинает кушаться память (файл main)
Раскрывающийся текст
#include "..\..\QueryClient\NewGUI\QT_graph\GraphWidget.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
ST::User::GraphWidget gw;
gw.show();
return a.exec(); // Тут происходит выделение огромного количества памяти
}