vector.at(i)
和vector[i]
有什么区别?C++ STL访问向量元素
vector<int> myVector(6);
myVector.at(5) = 5;
OR
myVector[5] = 5;
我知道,这两个产生相同的结果,但不知何故操作[]
更快。我还读了at
检查矢量大小(边界)并返回出界错误,而[]
没有。
但是我看到,如果尝试分配:
myVector[8] = 1;
我得到一个类似超出范围错误的调试模式。
那么at
是什么意思?为什么在STL中?
可能是在调试模式下,特定的矢量实现甚至对'[]'运算符也有范围检查。你真的必须检查你正在使用的库的文档。 –
任何参考资料都应该告诉你。如果您不相信有效性,请查看标准。 – chris