std::string_view ends_with() method
- od C++20
// (1) Const version onlyconstexpr bool ends_with( std::basic_string_view<CharT,Traits> sv ) const noexcept;// (2) Const version onlyconstexpr bool ends_with( CharT c ) const noexcept;// (3) Const version onlyconstexpr bool ends_with( const CharT* s ) const;Checks if the string view ends with the given suffix, where
-
(1) The suffix is a string view.
Effectively returnssize() >= sv.size() && compare(size() - sv.size(), npos, sv) == 0. -
(2) The suffix is a single character.
Effectively returns!empty() && Traits::eq(back(), c). -
(3) The suffix is a null-terminated character string.
Effectively returnsends_with(basic_string_view(s)).
Parameters
s- a string view view which may be a result of implicit conversion from anotherstd::basic_string_viewc- a single characters- a null-terminated character string view
Return value
true if the view ends with the provided suffix, false otherwise.
Complexity
- (1) Linear in the size of
sv- O(sv.size()). - (2) Constant - O(1).
- (3) Linear in the size of
s- O(std::strlen(s)).
Notes
Feature testing macro: __cpp_lib_ends_ends_with.
Example
#include <iostream>#include <string_view> auto main() -> int{ using namespace std::literals; std::cout << std::boolalpha // (1) bool ends_with( basic_string_view sv ) const noexcept; << std::string_view("https://cppreference.com").ends_with(".com"sv) << ' ' // true << std::string_view("https://cppreference.com").ends_with(".org"sv) << ' ' // false // (2) bool ends_with( CharT c ) const noexcept; << std::string_view("C++20").ends_with('0') << ' ' // true << std::string_view("C++20").ends_with('3') << ' ' // false // (3) bool ends_with( const CharT* s ) const; << std::string_view("string_view").ends_with("view") << ' ' // true << std::string_view("string_view").ends_with("View") << ' ' // false << '\n';}true false true false true falseHover to see the original license.