2016-11-26 2 views
1

Я новичок в C++, и у меня проблемы с адаптацией из Java. Я знаю, что Vectors в C++ работают аналогично ArrayList в Java, но у меня есть некоторые проблемы, которые он понимает полностью.Вставка определенного элемента в вектор

Предположим, у меня есть vector<PetStore*> pets, и у каждого объекта PetStore есть некоторые геттеры и сеттеры. Я хочу установить/вставить конкретный элемент по определенному индексу в векторе. Я также хочу вызвать метод bool setAdopted(bool adopted) на вставленное домашнее животное и установить принятый в true.

/* 
    Pseudo code 
    pets.insert(pets.begin()+i, setAdopted(true)); 
*/ 
+1

Я не могу понять ваш пример, но вот пример о том, как вставить вектор: http://stackoverflow.com/questions/6726805/insert-an-element-into-a-specific-position-of-a- vector – Yves

+1

Попробуйте следующее: 'pets [specific_index] .setadopted (true);' – ruhul

+0

@Thomas Я видел это раньше, но я работаю с OOP. – jdog

ответ

0

Я хочу установить/включить конкретный элемент в определенном индексе

Вставка

PetStore *item; 
item = new PetStore(); 
vector<PetStore*> pets; 
vector<PetStore*>::iterator it; 
it = pets.begin(); 
it = pets.insert (it , item); 
// another way.. 
pets.insert (it,2,item); 

Set:

pets.at(indx)->setadopted(true); 

Ссылки: vector/insert

+0

Предполагая, что 'PetStore' определяется как тип указателя, тогда ваш ответ будет верным – smac89

+0

Спасибо! Он, наконец, скомпилирован – jdog

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