Во-первых, да, я новичок в C++ векторах.
Теперь мой вопрос: почему, по-вашему, мой вектор пуст?
У меня есть глобальная переменная:
vector<int> parentVector;
Теперь, поскольку это глобальная переменная, и я не знаю, какой размер должен быть, только позже в программе, я делаю это в какой-то момент:
//numberOfNodes = 8 in current example
parentVector.reserve(numberOfNodes);
И немного позже, я пытаюсь присвоить значение первому элементу вектора, но он не работает:
parentVector[0] = -1;
И я также делаю следующее, которое не присваивает никакой ценности:
//nextNode.node and currentNode.node is between the range of 1 - 8, thus the - 1.
parentVector[nextNode.node - 1] = currentNode.node - 1;
Редактировать: Спасибо за ваши ответы, изменил размер().
Сохранение пространства в векторе с использованием std::vector::reserve
- это не то же самое, что добавлять к нему элементы. После резервирования вектор все еще пуст. Вместо этого используйте std::vector::resize
.
resize
с[]
accessor, либо просто используйтеpush_back