Problem w programie z klasą VECTOR

0

Witam, mam taki prosty programik czytający z pliku:
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main(){
vector<string> v;
ifstream in("plik.txt");
string odczyt;

while(getline(in,odczyt))
   v.push_back(odczyt);
   
for(int i=0;i<v.size();i++){
		cout<<i+1<<": "<<v[i]<<endl;
}
/*
for(int i=v.size();i>=0;i--){
		cout<<i<<": "<<v[i]<<endl;
}
*/
system("pause");
return 0;

}</span>
Chciałbym wyświetlić ten plik nie od początku tylko od końca. Napisałem pętle (komentarz), jednak program się wiesza. Pomóżcie

0

Pisze z głowy (, czyli z niczego):

for(vector<string>::iterator i(v.end()), b(v.begin()); b >= i; --i)
{cout << *i << endl;}

Ew. skorzystaj z algorytmu for_each link.

0

Próbowałem, ale nie działa, wolałbym jakieś prostsze rozwiązanie.

0
#include <string>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

void print(int i)
{
	cout << i << endl;
}

int main()
{
	vector<int> v;

	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);

	for_each( v.rbegin(), v.rend(), print);

	return 0;
}

Jeśli to jest trudne, to ja się więcej nie wypowiadam...

0

Pierwszy raz się spotkałem z taką pętlą for_each, i zapis tej pętli była dla mnie nie zrozumiały. Program już działa, dzięki za podpowiedź.</delphi>

0

To nie jest pętla, tylko algorytm.

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