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] |