Re[2]: Удаление из вектора
От: TTL Беларусь  
Дата: 15.01.04 20:52
Оценка:
Спасибо, Bell.

B>Обратная процедура практически ничем не отличается (за исключением того, что здесь использование dynamic_cast оправдано):


B>
B>std::vector <Base*> :: iterator BsItr = BsVec.begin();
B>Child1* p1 = dynamic_cast<Child1*>(*BsItr);
B>if(p1)
B>{
B>   std::vector <Child1*> :: iterator Ch1Itr = std::find(Ch1Vec.begin(), Ch1Vec.end(), p1);
B>   ...
B>}
B>else
B>{
B>   std::vector <Child2*> :: iterator Ch2Itr = std::find(Ch2Vec.begin(), Ch2Vec.end(), static_cast<Child2*>(*BsItr));

Здесь тоже надо dynamic_cast? 

B>}
B>


B>ЗЫ

B>Почему используется std::vector, а не тот же std::set?

Использую обращение по индексу. Подходящей функции сравнения элементов нет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.