Я хочу создать матрицу расстояний большого набора данных и хочу хранить только «близкие» элементы. Код читается так
vector<double> * D;
D = (vector<double> *) malloc(dim *sizeof(vector<double>) ) ;
for(i=0;i<dim;i++){
for(j=i+1;j<dim;j++){
dx = s[j][0] - s[i][0];
dy = s[j][1] - s[i][1];
d = sqrt( dx*dx + dy*dy );
if(d < MAX_DISTANCE){
D[i].push_back(d);
D[j].push_back(d);
}
}
что дает мне ошибку сегментации. Думаю, я неправильно определил массив векторов. Как мне обойти это?
malloc
в С++. - person songyuanyao   schedule 08.04.2016std::vector<double>
и установите его размерwidth*height
. - person Simple   schedule 08.04.2016std::vector<std::vector<double> > D(dim);
. - person Galik   schedule 08.04.2016std::vector<std::vector<double>> D(dim);
решает вашу проблему, учитывая то, что вы опубликовали. Почему бы не запустить его и не убедиться, что он работает правильно? - person PaulMcKenzie   schedule 08.04.2016