std:: deque: как получить итератор, указывающий на элемент с указанным индексом?
У меня есть std::deque, и я хочу вставить элемент по указанному индексу (я знаю, что std:: list будет лучше). Функция deque::insert() использует итератор для указания места вставки. Учитывая индекс, как я могу получить итератор, указывающий на это место, чтобы я мог передать этот итератор для insert ()?
например:
void insertThing ( deque<Thing> & things, Thing thing, size_t index )
{
deque<Thing>::iterator it = /* what do I do here? */
things.insert ( it, thing );
}
Я уверен, что это очень простой вопрос, и я извиняюсь за это. Прошло много времени с тех пор, как я использовал STL, и я не вижу ничего в списке членов std::deque, который, очевидно, делает то, что я хочу. Спасибо.
2 ответов
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);