Siemka. Napisałem taki program, u mnie wszystko śmiga. Niestety znów znalazł się jakiś głupi błąd, którego nie mogę znaleźć, a który znalazł wykładowca :-/ Jakby ktoś zerknął to będę baardzo wdzięczny, bo muszę to wysłać do jutra..
Treść zadania:
Mój program:
#include <iostream>
#include <vector>
#include <functional>
std::vector<int>::iterator transform(std::vector<int>::const_iterator b, std::vector<int>::const_iterator e,std::vector<int>::iterator f, std::function<int(int)> x){
while(b<e){
*f = x(*b);
b++;
f++;
}
return f;
}
int main() {
const std::vector<int> vector1 {-7, 5, 1, 2, 11, -1};
std::vector<int> vector2(5);
auto result = transform(vector1.cbegin(), vector1.cend(), vector2.begin(),[](int element) {return element * element;});
for (auto iterator = vector2.cbegin(); iterator < result;) {
std::cout << *iterator++ << " "; }
std::cout << std::endl;
}
Kod błędu:
transform.cxx: In function ‘std::vector<int>::iterator transform(std::vector<int>::const_iterator, std::vector<int>::const_iterator, std::vector<int>::iterator, std::function<int(int)>)’:
transform.cxx:4:1: error: ‘inf’ was not declared in this scope
inf
^
Oczywiście szukalem w google, na stack i zauważyłem, że błąd prawdopodobnie jest związany z tym, że coś rozbiega (infinite). Niestety nie mogę sobie z tym poradzić.
Z góry dziękiuję za pomoc :-)