Natknąłem się na głupi błąd i nie wiem za bardzo jak go rozwiązać -> może i trywialny ale poproszę o dokładne wytłumaczenie jeżeli ktoś mógłby mi pomóc :)
I z góry zaznaczam, tak można to napisać za pomocą lambdy, ale przykład musi wykorzystywać funktory. Koniec kropka...
Mamy więc vector z liczbami i musimy wskazać które z nich są parzyste.
#include <iostream>
#include <vector>
#include <algorithm>
bool czyParzysta(int i)
{
return i%2==0;
}
int main()
{
int tab[10]={1,2,3,4,5,6,7,8,9,10};
std::vector<int> vs(tab, tab + sizeof(tab)/sizeof(tab[0]));
std::vector<int>::iterator it = find_if(vs.begin(), vs.end(), czyParzysta);
// pętla while i tu chyba jest jakiś błąd, wykonuje się do momentu w którym nic w pętli nie będzie i iteruje iterator it
while(vs.empty()==false)
{
std::cout << *it << " ";
it++;
}
return 0;
}
Jakieś wytłumaczenie błędu logiczne mile widziane :)
Dzięki z góry