У меня есть станд.:: двухсторонняя очередь, и я хочу вставить элемент в указанном индексе (я знаю что станд.:: список был бы лучше в этом). Двухсторонняя очередь:: вставьте (), функция берет итератор для определения местоположения для вставки. Учитывая индекс, как я могу получить итератор, указывающий на то местоположение, так, чтобы я мог передать тот итератор для вставки ()?
Например:
void insertThing ( deque<Thing> & things, Thing thing, size_t index )
{
deque<Thing>::iterator it = /* what do I do here? */
things.insert ( it, thing );
}
Я уверен, что это - очень простой вопрос, и я приношу извинения за него. Это было долгое время, так как я использовал STL, и я ничего не вижу в станд.:: список элементов двухсторонней очереди, который, очевидно, делает то, что я хочу.Спасибо.
void insertThing ( deque<Thing> & things, Thing thing, size_t index )
{
deque<Thing>::iterator it = things.begin() + index;
things.insert ( it, thing );
}
Двухсторонняя очередь поддерживает произвольный доступ, поэтому вы должны иметь возможность сказать
things.insert( my_deque.begin() + index, thing);