vectors new example array c++ vector structure

new - vector de último elemento de c++



vector c++ example (7)

Tengo un vector vec de estructuras. Tal estructura tiene elementos int a, int b, int c . Me gustaría asignarle algo de int var al elemento c, desde la última estructura en un vector. Por favor, ¿pueden proporcionarme esta solución simple? Voy a circular en línea así:

var = vec.end().c;


La respuesta inmediata a su pregunta sobre cómo obtener acceso al último elemento de un vector se puede lograr utilizando el miembro back() . Como:

int var = vec.back().c;

Nota: Si existe la posibilidad de que su vector esté vacío, una llamada a back() provoca un comportamiento indefinido. En tales casos, puede verificar el estado vacío de su vector antes de usar back() usando el miembro empty() :

if (!vec.empty()) var = vec.back().c;

Es probable que uno de estos dos métodos sea aplicable para sus necesidades.


Pruebe esto: var = vec.back().c;

También puedes modificar tu código como:

var = vec.rbegin()->c;

¡En ambas versiones primero asegúrate de que el vector no esté vacío!



Simplemente puede usar de back ya que devuelve una referencia al último elemento.
var = vec.back().c


Use back() :

var = vec.back().c;


var = vec.back().c; es lo que quieres

end() devuelve el iterador (no un elemento) pasado el vector. back() devuelve una referencia al último elemento. También tiene un front() contraparte front() .


vec.end() es un iterador que refiere la ubicación posterior al vector. Como tal, no puede deferencia y acceder a los valores de los miembros. vec.end() iterador vec.end() siempre es válido, incluso en un vector vacío (en cuyo caso vec.end() == vec.begin() )

Si desea acceder al último elemento de su vector, use vec.back() , que devuelve una referencia (y no un iterador). Sin embargo, tenga en cuenta que si el vector está vacío, dará lugar a un comportamiento indefinido; muy probablemente un accidente.