C++ c++;使用对象指针将向量推回
我需要通过将一个对象传递到此函数中来创建一个对象指针向量,然后使用push_back将其放入一个对象指针向量中,但是我得到了“从const Person*到std::vector::value_type{aka Person*}的无效转换”,我如何传递指针来正确地推回以使其工作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(
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;
由于复杂的原因,我无法删除常量,函数中正在进行其他操作。我不能改变向量类型。还有别的办法吗?为什么你不能改变向量类型?