станд.:: двухсторонняя очередь: Как я получаю итератор, указывающий на элемент в указанном индексе?

У меня есть станд.:: двухсторонняя очередь, и я хочу вставить элемент в указанном индексе (я знаю что станд.:: список был бы лучше в этом). Двухсторонняя очередь:: вставьте (), функция берет итератор для определения местоположения для вставки. Учитывая индекс, как я могу получить итератор, указывающий на то местоположение, так, чтобы я мог передать тот итератор для вставки ()?

Например:

void insertThing ( deque<Thing> & things, Thing thing, size_t index )
{
   deque<Thing>::iterator it = /* what do I do here? */
   things.insert ( it, thing );
}

Я уверен, что это - очень простой вопрос, и я приношу извинения за него. Это было долгое время, так как я использовал STL, и я ничего не вижу в станд.:: список элементов двухсторонней очереди, который, очевидно, делает то, что я хочу.Спасибо.

10
задан Ptah- Opener of the Mouth 9 April 2010 в 15:17
поделиться

2 ответа

void insertThing ( deque<Thing> & things, Thing thing, size_t index )
{
   deque<Thing>::iterator it = things.begin() + index;
   things.insert ( it, thing );
}
22
ответ дан 3 December 2019 в 14:43
поделиться

Двухсторонняя очередь поддерживает произвольный доступ, поэтому вы должны иметь возможность сказать

things.insert( my_deque.begin() + index, thing);
10
ответ дан 3 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: