访问vector元素时,使用at
和方括号[]
之间真的有什么区别吗?
我看到同一个人更喜欢myvector.at()
而不是myvector[]
,是否有使其更受欢迎的东西,例如在某些情况下更好的性能,或与某些其他语言通用?
最佳答案
主要区别在于operator[]
是未选中的,如果您尝试在 vector 的边界之外访问内存,则会导致未定义行为,而.at
会检查索引,并且如果您尝试越界访问内存,则会抛出std::out_of_range异常。
访问vector元素时,使用at
和方括号[]
之间真的有什么区别吗?
我看到同一个人更喜欢myvector.at()
而不是myvector[]
,是否有使其更受欢迎的东西,例如在某些情况下更好的性能,或与某些其他语言通用?
最佳答案
主要区别在于operator[]
是未选中的,如果您尝试在 vector 的边界之外访问内存,则会导致未定义行为,而.at
会检查索引,并且如果您尝试越界访问内存,则会抛出std::out_of_range异常。