¿Por qué es mejor usar "vector.at (x)" que "vector [x]" en C ++?

Si quiero llegar a un valor en vector, puedo usar dos opciones: usar el operador []. O podría usar la función .at ejemplo para usar:

vector<int> ivec;
ivec.push_back(1);

Ahora puedo hacer ambas cosas.

int x1 = ivec[0];
int x2 = ivec.at(0); // or

Escuché que usar en es una mejor opción porque cuando uso esa opción puedo lanzar ésta en una excepción.

¿Alguien puede explicar esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta