std::span<T,Extent>::operator[]

来自cppreference.com
< cpp‎ | container‎ | span
constexpr reference operator[]( size_type idx ) const;
(C++20 起)

获得到序列的第 idx 个元素的引用。

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

(C++26 前)

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

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

目录

[编辑] 参数

idx - 要访问的元素的索引

[编辑] 返回值

data()[idx]

[编辑] 异常

不抛出。

[编辑] 示例

#include <cstddef>
#include <iostream>
#include <span>
#include <utility>
 
void reverse(std::span<int> span)
{
    for (std::size_t i = 0, j = std::size(span); i < j; ++i)
    {
        --j;
        std::swap(span[i], span[j]);
    }
}
 
void print(const std::span<const int> span)
{
    for (int element : span)
        std::cout << element << ' ';
    std::cout << '\n';
}
 
int main()
{
    int data[]{1, 2, 3, 4, 5};
    print(data);
    reverse(data);
    print(data);
}

输出:

1 2 3 4 5
5 4 3 2 1

[编辑] 参阅

(C++26)
带越界检查访问指定的元素
(公开成员函数) [编辑]
直接访问底层连续存储
(公开成员函数) [编辑]
返回元素数
(公开成员函数) [编辑]
转换 span 为对其底层字节的视图
(函数模板) [编辑]