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].