std::string_view find_last_of() method
- since C++17
// (1) Const version only
constexpr size_type find_last_of( const basic_string& str, size_type pos = 0 ) const noexcept;
// (2) Const version only
constexpr size_type find_last_of( const CharT* s, size_type pos, size_type count ) const;
// (3) Const version only
constexpr size_type find_last_of( const CharT* s, size_type pos = 0 ) const;
// (4) Const version only
constexpr size_type find_last_of( CharT ch, size_type pos = 0 ) const noexcept;
Finds the last character equal to one of characters in the given character sequence. The search considers only the interval [ 0; pos ].
- (1) Finds the last occurence of any of the characters of v in this view, ending at position pos.
- (2) Equivalent to
find_last_of(basic_string_view(std::addressof(c), 1), pos)
. - (3) Equivalent to
find_last_of(basic_string_view(s, count), pos)
. - (4) Equivalent to
find_last_of(basic_string_view(s), pos)
.
Parameters
v
- view to search forpos
- position at which the search is to finishcount
- length of the string of characters to search fors
- pointer to a string of characters to search forch
- character to search for
Return value
Position of the last occurrence of any character of the substring, or npos
if no such substring is found.
Complexity
O(size() * v.size()) at worst.
important
This section requires improvement. You can help by editing this doc page.
Exceptions
(none)
Example
#include <string_view>
#include <iostream>
int main()
{
using namespace std::literals;
constexpr auto N = std::string_view::npos;
static_assert(
5 == "delete"sv.find_last_of("cdef"sv) &&
// └────────────────────┘
N == "double"sv.find_last_of("fghi"sv) &&
//
0 == "else"sv.find_last_of("bcde"sv, 2 /* pos [0..2]: "els" */) &&
// └────────────────────────┘
N == "explicit"sv.find_last_of("abcd"sv, 4 /* pos [0..4]: "expli" */) &&
//
3 == "extern"sv.find_last_of('e') &&
// └────────────────────┘
N == "false"sv.find_last_of('x') &&
//
0 == "inline"sv.find_last_of('i', 2 /* pos [0..2]: "inl" */) &&
// └───────────────────────┘
N == "mutable"sv.find_last_of('a', 2 /* pos [0..2]: "mut" */) &&
//
3 == "namespace"sv.find_last_of("cdef", 3 /* pos [0..3]: "name" */, 3 /* "cde" */) &&
// └─────────────────────────┘
N == "namespace"sv.find_last_of("cdef", 3 /* pos [0..3]: "name" */, 2 /* "cd" */)
);
std::cout << "All tests passed.\n";
}
Output
All tests passed.
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.