Vector na własnej strukturze

0

Nie mogę pojąć jak działa vector, jest ktoś w stanie pomóc?
Mam taki kod, i rozmiar który jest mi zwracany to zero mimo że w pliku jest np

FIAT 500 2012 Disel
itd...

#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
struct samochod {
    string model, marka;
    int rok;
    string paliwo;
};

vector<samochod> wypelnij(ifstream &plik){
    int n=0;
    vector<samochod> vec;

    for(samochod n: vec)
        plik>>n.model>>n.marka>>n.rok>>n.paliwo;
    return vec;
}

int main() {
    ifstream plik;
    plik.open("plik.txt");
    if(!plik.good()){
        cout<<"Blad na pliku!"<<endl;
        exit(-1);
    }
    int rozmiar=0;
    vector<samochod> v;
    v=wypelnij(plik);

    rozmiar=v.size();
    cout<<"Rozmiar: "<<rozmiar<<endl;


    return 0;
}


4

w wypelnij iterujesz po wektorze, do którego nic nie wkładasz.
Zamiast tego spróbuj:

vector<samochod> vec;
samochod n;

while (plik >> n.model >> n.marka >> n.rok >> n.paliwo) {
	vec.push_back(n);
}

ps. n to ultra kiepska nazwa

1 użytkowników online, w tym zalogowanych: 0, gości: 1