Vector na własnej strukturze

Vector na własnej strukturze
PP
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 5 lat
  • Postów:20
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...

Kopiuj
#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;
}


spartanPAGE
  • Rejestracja:około 12 lat
  • Ostatnio:około 12 godzin
4

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

Kopiuj
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

edytowany 2x, ostatnio: spartanPAGE
PP
Dzięki wielkie, właśnie o to mi chodziło, dopiero co uczę się działania vectora, to jak proponujesz nazwać zamiast n? :D
spartanPAGE
@PiotrekPL jeśli już chcesz używać pojedynczej litery, to proponuję pierwszą literę typu zamiast jakiejś niepowiązanej
PP
bo ja sobie to błędnie skojarzyłem jakby z ilością
spartanPAGE
@PlotrekPL spokojnie, następnym razem już nie popełnisz tego błędu ;)
PP
Dzięki wielkie za pomoc

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.