Если вы посмотрите на вывод, вы увидите, что такое содержимое listOrder, и это правильное содержимое. Однако, как только я передаю его в свой конструктор графа и выдаю тот же список, у меня есть jibberish. Я подозреваю, что это имеет какое-то отношение к моему граничному смежному списку содержимого Vertex *, но я не понимаю, как меняются мои указатели. Пожалуйста, помогите мне получить правильные узлы в векторе графика!Почему мой вектор меняется после прохождения через конструктор?
for (vector<char>::iterator it=listOrder.begin(); it!=listOrder.end(); ++it)
{
cout << "ListNode: " << *it << endl;
}
Graph graph(listOrder, adjacencyList);
for (vector<char>::iterator it=graph.getOrder().begin(); it!=graph.getOrder().end(); ++it)
{
cout << "Node: " << *it << endl;
}
Конструктор
Graph::Graph(vector<char> newVertices, map<char, Vertex*> newAL)
{
vertices = newVertices;
adjacencyList = newAL;
}
функция GetOrder
vector<char> Graph::getOrder()
{
return vertices;
}
Выход
ListNode: A
ListNode: B
ListNode: C
ListNode: D
ListNode: E
ListNode: F
ListNode: G
Node: ░
Node: ↨
Node: >
Node:
Node: ─
Node:
Node: >
Я не вижу, вы выводя тот же список, я вижу два разных списка. Объясните себе, пожалуйста, и добавьте еще немного кода для функции 'getOrder'. –
Уже добавили код – CodeManiak
Вы пробовали valgrind? – razeh