Я получаю ошибку сегментации в моей программе, и GDB сообщает мне, что она находится в этой функции в строке
parent->getChildren().push_back(temp);
в
void Tree::add(Position& value, Node*& parent) {
Node* temp = new Node(value, parent);
parent->getChildren().push_back(temp);
}
Я добавил операторы cout перед этой строкой, и все кажется правильным, когда вызывается функция. Но я не думаю, что мой вектор может быть недействительным? Объявление вектора здесь -
std::vector<Node*> children;
с getChildren () просто возвращает std :: vector &. Любая помощь приветствуется.
Конструктор узла:
Tree::Node::Node(Position& v, Node*& p)
: value(v), parent(p), gvalue(0), hvalue(0), fvalue(0) {}