c
в порядке.Проблема действительно в double value = ..
, как говорит ваш компилятор.У вас есть указатели, поэтому вы не можете получить доступ к таким элементам массива, как это:
double value = yVal[c-1] + ...
Это должно быть
double value = (*yVal)[c-1] +
То же самое для xyVal
, xxVal
и т. Д.Вам нужно исправить весь внутренний цикл for
.
Но почему вы выделяете vector
вот так ...?Есть ли причина использовать new
?Это так подвержено ошибкам.Я бы использовал
vector<double> xVar;
вместо
xVal = new vector<double>();
И затем использовал бы .
вместо ->
в сочетании с *
.Намного проще.
Ах, забыл про вопрос для c
- нет, не должно быть double
.Вы не можете использовать числа с плавающей запятой для индексов.Кроме того, если xVal
должен содержать целые числа (чтобы их можно было использовать для индексов), почему бы вам просто не объявить vector
как vector< int >
вместо vector< double >
?Я не понимаю, какая логика в вашей программе, но похоже, что она (логика) должна быть улучшена, ИМО.