2013-11-18 2 views
0

Мне нужно создать вектор указателей объектов, передав объект в эту функцию, а затем поместив в вектор указателей объектов с push_back, но я получаю «неверное преобразование из const Person * to std :: vector :: value_type {aka Person *} «Как правильно передать указатель на push_back, чтобы сделать эту работу?C++ vector push_back с указателем объекта

vector<Person*>vptr; 

void insert(const Person&p) 
{ 
    const Person*ptr=&p; 
    vptr.push_back(ptr); 
} 

ответ

6

Вы бы уронить const из списка параметров функции и указатель декларации:

void insert(Person& p) 
{ 
    vptr.push_back(&p); 
} 

или хранить const Person*:

vector<const Person*> vptr; 
+0

Я не могу отказаться от сопзЬ из-за сложной причины, другие функции продолжаются в функции. И я не могу изменить векторный тип. Есть ли другой путь? – user1804208

+0

Почему вы не можете изменить тип вектора? – immibis

Смежные вопросы