std::array<T,N>::operator[]

来自cppreference.com
< cpp‎ | container‎ | array

reference operator[]( size_type pos );
(1)(C++11 起)
(C++17 起为 constexpr)
const_reference operator[]( size_type pos ) const;
(2)(C++11 起)
(C++14 起为 constexpr)

返回位于指定位置 pos 的元素的引用。 如果实现未加固,则(C++26 起)不进行边界检查。

如果 pos < size()false,那么行为未定义。

(C++26 前)

如果 pos < size()false,那么:

  • 如果实现是硬化实现,那么就会发生契约违背。并且契约违背处理函数在“观察”求值语义下返回时行为未定义。
  • 如果实现不是硬化实现,那么行为未定义。
(C++26 起)

参数

pos-要返回的元素的位置

返回值

到所需元素的引用。

复杂度

常数。

注解

std::map::operator[] 不同,此运算符不会向容器插入新元素。若实现未被加固,则(C++26 起)通过此运算符访问不存在的元素是未定义行为。

示例

下列代码使用 operator[] 读取并写入 std::array<int, N>

#include <array>
#include <iostream>
 
int main()
{
    std::array<int, 4> numbers{2, 4, 6, 8};
 
    std::cout << "第二个元素:" << numbers[1] << '\n';
 
    numbers[0] = 5;
 
    std::cout << "所有数:";
    for (auto i : numbers)
        std::cout << ' ' << i;
    std::cout << '\n';
}

输出:

第二个元素:4
所有数:5 4 6 8

参阅

带越界检查访问指定的元素
(公开成员函数)