vectors vectores libreria elementos crear c++ stl vector iterator

vectores - Usando C++ vector:: insert() para agregar al final del vector



vector c `` (2)

Estoy escribiendo un pequeño fragmento de código en el que tendré que insertar valores en un vector C ++ STL en un lugar determinado según los valores de los elementos del vector. Estoy usando la función de insert() para lograr esto. Me doy cuenta de que cuando quiero agregar un nuevo elemento al final del vector, simplemente podría usar push_back() . Pero para que mi código se vea bien, me gustaría usar insert() , que toma como entrada el iterador que apunta al elemento después del punto de inserción deseado y el valor que se va a insertar. Si el valor del iterador pasado como un argumento es v.end() , donde v es mi vector, ¿funcionará igual que push_back() ?

¡Muchas gracias!


Hay una pequeña diferencia en que push_back devuelve void si la insert devuelve el iterator al elemento que acaba de insertarse.

Por cierto, hay otra forma de verificar si hacen lo mismo: compilar los siguientes códigos

int main() { std::vector<int const> v; v.push_back(0); return 0; }

el compilador imprimirá una gran cantidad de mensajes molestos, solo lea y encontrará push_back llamadas push_back (si no, intente compilar v.insert(v.end(), 0) para ver si llaman a la misma función de inserción) al final .


a.push_back(x) se define para tener una semántica idéntica a (void)a.insert(a.end(),x) para los contenedores de secuencia que lo soportan.

Consulte la tabla 68 en ISO / IEC 14882: 2003 23.1.1 / 12 [lib.sequence.reqmts].