Я пытаюсь загрузить некоторые данные из текстового файла в вектор структур. У меня вопрос, как вы указываете размер вектора? Или я должен использовать векторную функцию push_back, чтобы сделать это динамически, и если да, то как это работает при заполнении структуры?
Полная программа приведена ниже:
Моя структура определена как
struct employee{
string name;
int id;
double salary;
};
и текстовый файл (data.txt) содержит 11 записей в следующем формате:
Mike Tuff
1005 57889.9
, где "Mike Tuff" - это имя, "1005" - это идентификатор, а "57889.9" - это зарплата.
Я пытаюсь загрузить данные в вектор структур, используя следующий код:
#include "Employee.h" //employee structure defined in header file
using namespace std;
vector<employee>emps; //global vector
// load data into a global vector of employees.
void loadData(string filename)
{
int i = 0;
ifstream fileIn;
fileIn.open(filename.c_str());
if( ! fileIn ) // if the bool value of fileIn is false
cout << "The input file did not open.";
while(fileIn)
{
fileIn >> emps[i].name >>emps[i].id >> emps[i].salary ;
i++;
}
return;
}
Когда я выполняю это, я получаю сообщение об ошибке: «Отладочное утверждение не выполнено! Выражение: векторный индекс вне диапазона».