У меня есть вектор, объявленный как глобальная переменная, который мне нужно для повторного использования. Например, я читаю несколько файлов данных, анализируя данные для создания объектов, которые затем хранятся в векторе.Повторное использование вектора в C++
vector<Object> objVector(100);
void main()
{
while(THERE_ARE_MORE_FILES_TO_READ)
{
// Pseudocode
ReadFile();
ParseFileIntoVector();
ProcessObjectsInVector();
/* Here I want to 'reset' the vector to 100 empty objects again */
}
}
Могу ли я сбросить вектор, чтобы быть "вектор objVector (100)", так как он был первоначально выделен на стеке? Если я делаю «objVector.clear()», он удаляет все 100 объектов, и у меня будет вектор с размером 0. Мне нужно, чтобы он был размером 100 в начале каждого цикла.
Вам нужно сохранить объекты или вы хотите сбросить их до состояния по умолчанию? – Macke
В вашем примере объект objVector статически выделен. Он не выделяется в стеке. – Alan
Неверный тип возврата вашей основной функции. В C и C++ main всегда должен возвращать int (но если вы ничего не вернете, C++ и C99 автоматически вернут 0). – Tronic