У меня ошибка выполнения при возврате вектора из функции в C ++
Это код:
vector<double> calcularCorrelaciones(Data posiciones, Data velocidades, Config config, int bins)
{
double paso = sqrt(2*config.Lbox*config.Lbox)/bins;
vector<double> res(bins,0);
vector<double> cum(bins,0);
for (int i=0; i<config.cantPart; i++){
double xi = posiciones.x[i];
double yi = posiciones.y[i];
double vxi = velocidades.x[i];
double vyi = velocidades.y[i];
for (int j=i; j<config.cantPart; j++){
double xj = posiciones.x[j];
double yj = posiciones.y[j];
double vxj = velocidades.x[j];
double vyj = velocidades.y[j];
double dist = PBC_distance(xi,yi,xj,yj,config.L);
int lugar = floor(dist/paso);
res[lugar] += vxi*vxj+vyi*vyj;
cum[lugar]++;
}
}
for (int i = config.cantPart; i >= 0; i--){
if (cum[i]){
res[i] = res[i]/cum[i];
cum[i] = cum[i]/cum[0];
}
}
for (int i = config.cantPart; i >= 0; i--){
res[i] = res[i]/res[0];
}
return res;
}
int main(int argc, char**argv)
{
// Genero el nombre del archivo de configuracio a leer
int num = atoi(argv[2])+atoi(argv[1]);
Config config(num);
config.levantarConfig();
Data posiciones = levantarArchivo(config,"POS",0,0);
Data velocidades = levantarArchivo(config,"VEL",0,0);
vector<double> res;
res.reserve(100);
res = calcularCorrelaciones(posiciones,velocidades,config,100);
}
В то время как отладка в CodeBlocks я нашел функцию calcularCorrelaciones работает какочарование, но у меня возникли проблемы с возвратом стоимости.Проблема в последней строке кода, когда возвращается вектор.