vector<int> vec;
vec[0];
vec.at(0);

vec是个空集合的情况下,[]访问是行为未定义的,at访问则会抛出std::out_of_range异常。c++标准不要求vector<T>::operator[]进行下标越界检查,原因是为了效率,总是强制下标越界检查会增加程序的性能开销。设计vector是用来代替内置数组的,所以效率问题也应该考虑。

posted on 2015-04-02 18:09  Gavin.Lin  阅读(1561)  评论(0编辑  收藏  举报