Как получить доступ к ним по итератору, чтобы можно было удалять объект из коллекции? struct Base { virtual void doit() { cout << "Base!\n"; } virtual ~Base() { cout << "deleted...\n"; } };
struct Derived: public Base
{
void doit() override { cout << "Derived!\n"; }
};
int main(int argc, const char * argv[])
{
list <unique_ptr<Base>> v;
v.emplace_back(new Base);
v.emplace_back(new Derived);
v.emplace_back(new Base);
v.emplace_back(new Derived);
v.emplace_back(new Base);
for(auto& o: v) o->doit();
}
Как получить доступ к объектам по итератору, чтобы можно было удалять объект из коллекции?
Как заменить строчку
for(auto& o: v) o->doit();
на цикл
for (auto it = v.begin(); it != v.end(); ++it)
{
it->doit();
}
Или как мне удалить в цикле for(auto& o: v) элемент из коллекции v?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости