El operador [] en vector no chequea la condición de out of range, y el estándar define esta situación como "undefined behavior", que es la forma que tiene de decir: no lo hagas, puede suceder cualquier cosa (algo malo, o peor: nada).
El Visual Studio hace una comprobación en modo debug, aunque no lo comprueba en modo release.
Una práctica más higiénica recomienda usar std::vector::at()
El Visual Studio hace una comprobación en modo debug, aunque no lo comprueba en modo release.
Una práctica más higiénica recomienda usar std::vector::at()