C++ 标准库 - <vector>

C++ std::vector::at() 按下列标访问元素;越界抛出 std::out_of_range。operator[] 不检查,越界属于未定义行为。

原型

T& at(size_t pos);
const T& at(size_t pos) const;

参数

  • pos:下标,须小于 size()。

返回值

对应元素的引用。越界抛出异常。

示例

#include <iostream>
#include <stdexcept>
#include <vector>

int main() {
    std::vector<int> v = {1, 2, 3};
    std::cout << v.at(1) << std::endl;
    try {
        std::cout << v.at(9) << std::endl;
    } catch (const std::out_of_range&) {
        std::cout << "out_of_range" << std::endl;
    }
    return 0;
}

输出:

2
out_of_range

注意事项

热路径且下标已由循环保证合法时,[] 更常见。来自外部的下标应检查范围或使用 at。

下一页介绍front:访问首元素。