c++ stl vector 下标可以取-1么
vector下标访问有两种情况:
- []运算符
- at函数
[]运算符
不会进行边界检查。
不同于 std::map::operator ,此运算符不插入新元素到容器。
通过此运算符访问不存在的元素是未定义行为。
at函数
访问指定的元素,同时进行越界检查。
若 !(pos < size()) 则抛出 std::out_of_range
vector下标访问有两种情况:
不会进行边界检查。
不同于 std::map::operator ,此运算符不插入新元素到容器。
通过此运算符访问不存在的元素是未定义行为。
访问指定的元素,同时进行越界检查。
若 !(pos < size()) 则抛出 std::out_of_range