Vector na własnej strukturze

Odpowiedz Nowy wątek
2019-04-28 18:08
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;
}

Pozostało 580 znaków

2019-04-28 18:15

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

edytowany 2x, ostatnio: spartanPAGE, 2019-04-28 18:17
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 - PlotrekPL 2019-04-28 18:21
@PiotrekPL jeśli już chcesz używać pojedynczej litery, to proponuję pierwszą literę typu zamiast jakiejś niepowiązanej - spartanPAGE 2019-04-28 18:22
bo ja sobie to błędnie skojarzyłem jakby z ilością - PlotrekPL 2019-04-28 18:25
@PlotrekPL spokojnie, następnym razem już nie popełnisz tego błędu ;) - spartanPAGE 2019-04-28 18:26
Dzięki wielkie za pomoc - PlotrekPL 2019-04-28 18:40

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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