Я пытаюсь завершить программу, которая оценивает полиномы при заданном x-значении. Полиномы хранятся с использованием STL's forward_list в объектах класса.
class PolyTerm {
private:
int _order = 0;
double _coeff = 0.0;
public:
PolyTerm() = default;
PolyTerm(int order, double coefficient) : _order(order), _coeff(coefficient) {}
void setOrder(int order) { _order = order; }
void setCoeff(double coeff) { _coeff = coeff; }
int getOrder() const { return _order; }
double getCoeff() const { return _coeff; }
};
Моя функция, которая принимает объект и значение x записывается следующим образом:
double evaluate(const forward_list<PolyTerm>& terms, double x) {
double answer = 0;
forward_list<PolyTerm>::iterator it;
while (it != terms.end()) {
answer += it->getCoeff() * pow(x, it->getOrder());
it++;
}
return answer;
}
Мой компиляторне показывает никаких ошибок, но как только я пытаюсь запустить программу, я получаю всплывающее окно с сообщением "Отладка не подтверждена!"с выражением: итераторы forward_list несовместимы изображение всплывающего окна Я почти уверен, что объявил итератор того же типа, что и список, содержащий многочлен, поэтому я не уверен, почему я получаю этоошибка.
Может кто-нибудь объяснить мне, что не так? Заранее спасибо за любую помощь.