std::span<T,Extent>::back
From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Containers library 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(C++17)
(C++11)
(C++26)
(C++26)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++23)
(C++23)
(C++23)
(C++23)
(C++20)
(C++23)
 Tables
std::span 
 
 
 
 
 
 
span::back
(C++26)
(C++23)
(C++23)
(C++23)
(C++23)
constexpr reference back() const;
 
 (since C++20) 
Returns a reference to the last element in the span.
If empty() is true, the behavior is undefined.
If empty() is true:
- 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.
Contents
[edit] Return value
A reference to the back element.
[edit] Complexity
Constant.
[edit] Notes
For a span c, the expression c.back() is equivalent to *(c.end() - 1).
[edit] Example
Run this code
#include <iostream> #include <span> void print_forward(const std::span <const int> span) { for (auto n{span.size()}; n != 0; --n) std::cout << span.last(n).front() << ' '; std::cout << '\n'; } void print_backward(const std::span <const int> span) { for (auto n{span.size()}; n != 0; --n) std::cout << span.first(n).back() << ' '; std::cout << '\n'; } int main() { constexpr int numbers[]{0, 1, 2, 3, 4}; print_forward(numbers); print_backward(numbers); }
Output:
0 1 2 3 4 4 3 2 1 0