Witam potrzebuje programy który na początek wczyta dane z pliku np.
1 2008 5 21
2 2009 4 11
id - rok - miesiac - dzien
No i czy da rade je wczytać do vektora, potem różne operacje na nich przeprowadzać?
Witam potrzebuje programy który na początek wczyta dane z pliku np.
1 2008 5 21
2 2009 4 11
id - rok - miesiac - dzien
No i czy da rade je wczytać do vektora, potem różne operacje na nich przeprowadzać?
Co za problem wczytać? Piszesz strukture przechowywującą id, rok, miesiąc i dzień a potem fscanfem(jeśli używasz cstdio) lub istreamem wczytujesz każdą linijkę. Wczytany obiekt dodajesz do wektora.
Przykład:
struktura tmp; //Tymczasowa struktura z id, rokiem, miesiącem i dniemwhile(fscanf(plik, "%d %d %d %d", tmp.id, tmp.rok, tmp.miesiac, tmp.dzien)) wektor.push_back(tmp); [/code]
Wtedy w jaki sposób moge operować na “środkowych” danych z tego wektora?
Jeśli zrobisz tak jak proponuje Fiołek to przecież masz wektor obiektów, dane są w polach struktury: wektor[indeks].id, wektor[indeks].rok, wektor[indeks].miesiac, wektor[indeks].dzien.
Jest jeszcze możliwość tworzenia par.
vector < pair< int, int> > v;
Wtedy odwołanie się do pierwszego i’tego int’a (może tam być każda zmienna: string, long, float itd.) następuje poprzez
v[i].first
do drugiego:
v[i].second
Tak też możesz stworzyć 3 wymiarowego vectora:
vector < pair < int, pair > > v;
wtedy np.:
v[i].first.first
Musisz wtedy też pamiętać, że np. w przypadku vectora dwuwymiarowego dodajesz tak:
int a, b;
cin >> a >> b;
vector < pair< int, int> > v;
v.push_back( make_pair(a,b) );
@up bardzo niewygodne, jak już to wygodniej użyć krotek. A w związku z tym, że nie ma ich w bibliotece standardowej (jeszcze) to chyba struktura jest najodpowiedniejsza.