Por que usar "vector.at (x)" é melhor que "vector [x]" em C ++?

Se eu quiser obter um valor em vetor, posso usar duas opções: use o operador []. Ou eu poderia usar a função .at para usar:

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

Agora eu posso fazer as duas coisas

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

Ouvi dizer que usar é uma opção melhor, porque quando eu uso essa opção, posso jogar essa em uma exceção.

Alguém pode explicar isso?

questionAnswers(4)

yourAnswerToTheQuestion