Если r
тоже std::vector
, попробуйте изменить внутренний цикл следующим образом:
// assuming r is a vector<double>
for(vector<double>::iterator it = r.begin(), ite = r.end(); it != ite; ++it){
// use *it instead of r[itr];
term1 = pow(*it, 12);
term1 = 1/term1;
term2 = pow(*it, 6);
term2 = 2/term2;
LJ.push_back(term1 - term2);
}
Однако, если r
является статически распределенным массивом (т. Е. В стеке), замените его следующим образом:
for(int itr = 0; itr < sizeof(r)/sizeof(r[0]); ++itr){
// same content...
}
Если это не является ошибкой сегмента, r
is not имеет 210 элементов.