std::span last() method
- od C++20
// (1) Const version only
template< std::size_t Count >
constexpr std::span<element_type, Count> last() const;
// (2) Const version only
constexpr std::span<element_type, std::dynamic_extent> last( size_type Count ) const;
Obtains a span that is a view over the last Count
elements of this span.
important
The program is ill-formed
ifCount > Extent
.Undefined Behaviour
The behavior is undefined
ifCount > size()
.Parameters
- (2) -
Count
- the number of the elements to make a span of
Return value
A span s
that is a view over the last Count
elements of *this
, with the following properties:
s.data() == this->data() + (this->size() - Count)
s.size() == Count
Complexity
Constant - O(1).
Exceptions
(none)
Example
Main.cpp
#include <iostream>
#include <span>
#include <string_view>
auto print = [](std::string_view const title, auto const& container) {
std::cout << title << "[" << std::size(container) << "]{ ";
for (auto const& elem : container)
std::cout << elem << ", ";
std::cout << "};\n";
};
void run(std::span<const int> span)
{
print("span: ", span);
std::span<const int, 3> span_last = span.last<3>();
print("span.last<3>(): ", span_last);
std::span<const int, std::dynamic_extent> span_last_dynamic = span.last(2);
print("span.last(2): ", span_last_dynamic);
}
int main()
{
int a[8]{ 1, 2, 3, 4, 5, 6, 7, 8, };
print("int a", a);
run(a);
}
Output
int a[8]{ 1, 2, 3, 4, 5, 6, 7, 8, };
span: [8]{ 1, 2, 3, 4, 5, 6, 7, 8, };
span.last<3>(): [3]{ 6, 7, 8, };
span.last(2): [2]{ 7, 8, };
This article originates from this CppReference page. It was likely altered for improvements or editors' preference. Click "Edit this page" to see all changes made to this document.
Hover to see the original license.
Hover to see the original license.