using namespace std;
struct Movie {
string title;
string director;
string genre;
string yearRelease;
string duration;
};
int main(){
cout << "Hi";
ifstream fin;
string line;
vector <Movie> m;
fin.open("Movie_entries.txt");
while (getline(fin, line)) {
cout << line << endl;
stringstream lineStream(line);
getline(lineStream, m.title, ',');
getline(lineStream, m.director, ',');
getline(lineStream, m.genre, ',');
getline(lineStream, m.yearRelease, ',');
getline(lineStream, m.duration, ',');
m.push_back({title, director, genre, yearRelease, duration});
}
}
Я пытаюсь отбросить структуру в вектор для хранения моих данных, и у меня возникают проблемы с тем, как именно это сделать. Это то, что я сейчас имею.Как отбросить структуру в вектор
Вам необходимо создать объект фильма, такой как Movie firstMovie. Затем получите информацию о всех вещах в структуре в firstMovie, затем push_back (firstMovie). Помните, что ваш вектор может ВИДИТЬ В «типах фильмов», это не значит, что у вас уже есть объект Movie created .. –
Off topic: Вы смотрите, чтобы быть в [отличной позиции для 'emplace_back'] (http: // en.cppreference.com/w/cpp/container/vector/emplace_back), который перескакивает из-за необходимости временного, делая почти то же, что вы пробовали с помощью 'push_back'. – user4581301
@OmidCompSCI 'push_back' должен работать как есть, см. [Здесь] (http://coliru.stacked-crooked.com/a/af8b615bb8c52a80), так как' Movie' является [агрегатом] (http: // stackoverflow .com/q/4178175/3093378), а фигурные скобки могут использоваться для его инициализации. В принципе, компилятору разрешено преобразовывать '{...}' в 'Movie {...}'. – vsoftco