Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;使用对象指针将向量推回_C++_Pointers_Vector - Fatal编程技术网

C++ c++;使用对象指针将向量推回

C++ c++;使用对象指针将向量推回,c++,pointers,vector,C++,Pointers,Vector,我需要通过将一个对象传递到此函数中来创建一个对象指针向量,然后使用push_back将其放入一个对象指针向量中,但是我得到了“从const Person*到std::vector::value_type{aka Person*}的无效转换”,我如何传递指针来正确地推回以使其工作 vector<Person*>vptr; void insert(const Person&p) { const Person*ptr=&p; vptr.push_back(

我需要通过将一个对象传递到此函数中来创建一个对象指针向量,然后使用push_back将其放入一个对象指针向量中,但是我得到了“从const Person*到std::vector::value_type{aka Person*}的无效转换”,我如何传递指针来正确地推回以使其工作

vector<Person*>vptr;

void insert(const Person&p)
{
    const Person*ptr=&p;
    vptr.push_back(ptr);
}
vectorvptr;
无效插入(const Person&p)
{
const Person*ptr=&p;
vptr.推回(ptr);
}

您必须从函数参数列表和指针声明中删除
常量

void insert(Person& p)
{
  vptr.push_back(&p);
}
或存储
const Person*

vector<const Person*> vptr;
vectorvptr;

由于复杂的原因,我无法删除常量,函数中正在进行其他操作。我不能改变向量类型。还有别的办法吗?为什么你不能改变向量类型?