std::basic_...ind_last_of(3)
πΈ NAME πΈ
okay so bestie, this is std::basic_string_view::find_last_of β and the NAME section is literally std::basic_string_view::find_last_of - std::basic_string_view::find_last_of. Yes, it said the same thing twice, and honestly? iconic. π
This page is std::basic_...ind_last_of(3) from the C++ Standard Libary manual (thatβs the exact header spelling, no cap π), and itβs all about finding the last character in a view that matches any character from a sequence you hand it. π¦
β¨ Synopsis β¨
Four overloads, all since C++17, all cute. Here are the exact synopsis lines from the page, with the overload markers and qualifiers kept intact:
constexpr size_type
find_last_of( basic_string_view v, size_type pos = npos )
(1) (since C++17)
const noexcept;
constexpr size_type
(2) (since C++17)
find_last_of( CharT ch, size_type pos = npos ) const noexcept;
constexpr size_type
find_last_of( const CharT* s, size_type pos, size_type count )
(3) (since C++17)
const;
constexpr size_type
(4) (since C++17)
find_last_of( const CharT* s, size_type pos = npos ) const;
the four overloads are numbered (1) through (4), and every single one is since C++17. The const and noexcept qualifiers are in there exactly as the page has them β donβt let the scrambled line breaks gaslight you. π«Ά
It finds the last character equal to one of the characters in the given character sequence.
The page is very clear that the exact search algorithm is not specified β so no guessing at internals, bestie. The search only considers the interval [0, pos]. If the character is not present in that interval, npos will be returned. periodt.
- 1) Finds the last occurrence of any of the characters of
vin this view, ending at positionpos. - 2) Equivalent to
find_last_of(basic_string_view(std::addressof(ch), 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 for.posβ position at which the search is to finish.countβ length of the string of characters to search for.sβ pointer to a string of characters to search for.chβ character to search for.
π Return value π
Position of the last occurrence of any character of the substring, or npos if no such character is found. thatβs the whole tea. β
π¦ Complexity π¦
O(size() * v.size()) at worst. yes bestie, thatβs the complexity line, exactly. π
π Example π
The page says // Run this code, and the exact code block is this:
#include <string_view>
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" */)
);
int main() {}
π See also π
findβ find characters in the view (public member function).rfindβ find the last occurrence of a substring (public member function).find_first_ofβ find first occurrence of characters (public member function).find_first_not_ofβ find first absence of characters (public member function).find_last_not_ofβ find last absence of characters (public member function).find_last_ofβ find last occurrence of characters (public member function ofstd::basic_string<CharT,Traits,Allocator>).
okay thatβs the whole page, bestie. source/version: http://cppreference.com Β· date: 2024.06.10 Β· footer page tag: std::basic_...ind_last_of(3). now go slay your string views πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms