std::span<T,Extent>::operator[] - cppreference.com (original) (raw)

| constexpr reference operator[]( size_type idx ) const; | | (since C++20) | | --------------------------------------------------------- | | ------------- |

Returns a reference to the idxth element of the sequence.

If idx < size() is false, the behavior is undefined. (until C++26)
If idx < size() is false: If the implementation is hardened, a contract violation occurs. Moreover, if the contract-violation handler returns under “observe” evaluation semantic, the behavior is undefined. If the implementation is not hardened, the behavior is undefined. (since C++26)

[edit] Parameters

idx - the index of the element to access

[edit] Return value

data()[idx]

[edit] Exceptions

Throws nothing.

[edit] Example

#include #include #include #include   void reverse(std::span 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 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); }

Output:

[edit] See also

| | access specified element with bounds checking (public member function) [edit] | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | direct access to the underlying contiguous storage (public member function) [edit] | | | returns the number of elements (public member function) [edit] | | | converts a span into a view of its underlying bytes (function template) [edit] |