Tengo std :: deque, y quiero insertar un elemento en un índice específico (soy consciente de que std :: list sería mejor en esto). La función deque :: insert() toma un iterador para especificar la ubicación para insertar. Dado un índice, ¿cómo puedo obtener un iterador apuntando a esa ubicación, de modo que pueda pasar ese iterador a insert()?std :: deque: ¿Cómo obtengo un iterador apuntando al elemento en un índice especificado?
Por ejemplo:
void insertThing (deque<Thing> & things, Thing thing, size_t index)
{
deque<Thing>::iterator it = /* what do I do here? */
things.insert (it, thing);
}
estoy seguro de que esto es una pregunta muy básica, y me disculpo por ello. Ha pasado mucho tiempo desde que utilicé el STL, y no veo nada en la lista de miembros de std :: deque que obviamente haga lo que quiero. Gracias.
En realidad, deque es mejor que en este listado. –
Neil, ¿estás seguro? http://www.sgi.com/tech/stl/Deque.html dice que admite "inserción de tiempo lineal [...] en el medio", mientras que http://www.sgi.com/tech/stl/List .html tiene "inserción de tiempo constante [...] en el medio". –
@Matthew Pero primero debe encontrar el punto de inserción. –