C++ 指针的指针推回向量

C++ 指针的指针推回向量,c++,C++,编译时,我得到以下错误。你能帮忙吗 ldframework::PointImpl::PointImpl(const BPatch_point&* po) { Bpatch_point *_bpoint=new BPatch_point(*po); } 查看第86行的(*点[0])部分 由于点是指向向量的指针,且数组下标运算符[]的优先级高于一元间接运算符*,因此将其解析为*(*(点+0)) 您可以尝试用(*点)[0]或甚至:(*点)[i] 此外,new_points是

编译时,我得到以下错误。你能帮忙吗

ldframework::PointImpl::PointImpl(const BPatch_point&* po)
{
    Bpatch_point *_bpoint=new BPatch_point(*po);     
}
查看第86行的
(*点[0])
部分

由于
是指向向量的指针,且数组下标运算符[]的优先级高于一元间接运算符*,因此将其解析为
*(*(点+0))

您可以尝试用
(*点)[0]
或甚至:
(*点)[i]

此外,
new_points
是指向向量的指针,该向量在使用之前尚未指定给指向有效对象的指针

此外,我看到您使用了很多指针,这会导致额外的间接性,减少局部性,并给您带来清理内容或导致内存泄漏的负担。
new_points
是否必须是指向
ldframework::Point
的指针向量?您可以使用
std::unique_ptr
向量来避免清理负担,但您也可以考虑:

ldframework::Point *pt1 = new ldframework::PointImpl((*points[0]));
std::vector*新点=
新std::载体;
对于(无符号整数i=0;isize();i++)
{
新建点->向后推(ldframework::PointImpl((*points)[i]);
}
或者更好:

std::vector<ldframework::PointImpl> *new_points =
  new std::vector<ldframework::PointImpl>;
for(unsigned int i = 0; i < points->size(); i++ )
{
  new_points->push_back( ldframework::PointImpl((*points)[i]) );
}
std::向量新点;
对于(无符号整数i=0;isize();i++)
{
新的点。向后推(ldframework::PointImpl((*points)[i]);
}

始终听编译器的声音。甚至我也想听编译器的错误。我在问如何修复这个编译器错误。编译器说错误在成员函数
BfunctionImpl::find_Point
这个成员函数在哪里?上面的代码行仅来自find_Point函数
ldframework::Point *pt1 = new ldframework::PointImpl((*points[0]));
std::vector<ldframework::PointImpl> *new_points =
  new std::vector<ldframework::PointImpl>;
for(unsigned int i = 0; i < points->size(); i++ )
{
  new_points->push_back( ldframework::PointImpl((*points)[i]) );
}
std::vector<ldframework::PointImpl> new_points;
for(unsigned int i = 0; i < points->size(); i++ )
{
  new_points.push_back( ldframework::PointImpl((*points)[i]) );
}