std::vector::at 和 std::vector::operator[]
时间: 2024-08-14 09:09:13 浏览: 39
C++之Boost::array用法简介
`std::vector::at()`和`std::vector::operator[]`都是用于访问C++标准库容器`std::vector`中的元素的方法,它们的主要区别在于错误处理和性能上:
1. `std::vector::at(size_type index)`:这个方法接收一个索引作为参数,并返回指定位置的元素。如果你提供的索引超出范围(即小于0或大于等于`size()`),会抛出`std::out_of_range`异常。因此,使用`at()`需要确保索引有效,否则可能导致程序崩溃。
2. `std::vector::operator[](size_type index)`:这是`std::vector`的一个隐式成员函数,也可以用方括号操作符[]来调用,它与`at()`类似,获取指定位置的元素。同样,如果索引无效,它会进行边界检查,但对于较大的向量,它比`at()`稍微快一些,因为不需要创建异常对象。
简而言之,`at()`提供了一种更安全但相对较慢的方式来访问元素,而`operator[]`虽然不太安全,但在常见情况下可能会更快。
阅读全文