复制构造函数之后的flann :: Index的析构函数产生访问冲突

时间:2014-10-27 11:08:01

标签: c++ flann

编辑(感谢Barry的评论)我需要复制FLANN搜索索引以在向量中使用它们,但是当副本进入范围时它会产生访问冲突。崩溃的最小代码是:

#include<flann\flann.hpp>
#include<vector>
const int samplesize=10;
const int dimension=3;
int main(int argc, char* argv[])
{
    //fill a pointer to doubles with whatever
    double * data=new double[samplesize*dimension];
        for(int i=0; i<samplesize*dimension; ++i)
        {
            data[i]=1;
        }
// make a FLANN search index from that data
flann::Matrix<double> datamat(data,samplesize,dimension );
flann::Index<flann::L2<double> > ind(datamat, flann::KDTreeIndexParams(4));

flann::Index<flann::L2<double> > ind2(ind);


return 0;
}

如果有人能告诉我如何制止这个

,我将不胜感激

1 个答案:

答案 0 :(得分:0)

答案似乎是我不应该使用Index的复制构造函数,因为它复制了一个指针并且析构函数删除了该指针(FLANN程序员违反了三个规则)。使用指针向量(或提升共享指针)来解决它似乎做我需要的事情