v.at(5)
//v[5]
如果vector v非空,那么at和下标索引没有区别。如果v为空,调用at会抛出异常,而operator[]索引的行为未定义。
c++标准不要求operator[]进行下标越界检查,原因是为了效率,下标越界检查会增加程序的性能开销。
v.at(5)
//v[5]
如果vector v非空,那么at和下标索引没有区别。如果v为空,调用at会抛出异常,而operator[]索引的行为未定义。
c++标准不要求operator[]进行下标越界检查,原因是为了效率,下标越界检查会增加程序的性能开销。