Значение вектора C ++ не задано [дубликаты]

0

Во-первых, да, я новичок в 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;

Редактировать: Спасибо за ваши ответы, изменил размер().

  • 2
    либо используйте resize с [] accessor, либо просто используйте push_back
Теги:
vector

1 ответ

2
Лучший ответ

Сохранение пространства в векторе с использованием std::vector::reserve - это не то же самое, что добавлять к нему элементы. После резервирования вектор все еще пуст. Вместо этого используйте std::vector::resize.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню