STL库容器vector at函数
v.at(n)返回v指定位置n的元素。at函数比[]运算符更加安全, 因为它不会让你去访问到越界的元素,一旦越界将会在运行时中止程序并抛出一个异常std::out_of_range
。
例如
vector<int> v(10,0);
cout<<v[11]<<endl;
这段代码访问了vector末尾以后的元素,这将可能导致很危险的结果,但系统不会报错。
以下的代码将更加安全:
vector<int> v(10,0);
cout<<v.at(11)<<endl;
取代试图访问内存里非法值的作法,at() 函数能够辨别出访问是否越界并在越界的时候中止程序。