访问存储在vector中的对象:使用std :: vector :: at或std :: vector :: operator []?

Kus*_*vil 1 c++ vector

在访问向量元素时,使用at和括号之间是否有任何区别[]

我看到同样的人喜欢myvector.at()上面myvector[],是否有一些东西使它更优选,如在某些情况下更好的表现,或与其他一些语言共同?

Cre*_*ris 5

主要区别在于operator[]未经检查,如果尝试访问内存超出向量范围,将导致未定义行为,而.at对索引进行检查并在尝试访问内存超出范围时将抛出std :: out_of_range异常