gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:44:15 28 4
gpt4 key购买 nike

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

#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;
}

如果有人能告诉我如何阻止它,我将不胜感激

最佳答案

答案似乎是我不应该为 Index 使用复制构造函数,因为它复制一个指针而析构函数删除该指针(FLANN 程序员违反了三规则)。使用指针 vector (或增强共享指针)解决它似乎可以满足我的需要

关于c++ - 复制构造函数产生访问冲突后的 flann::Index 的析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586216/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com