std::basic_..._view::rfind(3)
β¨ NAME β¨
okay so bestie, welcome to the std::basic_..._view::rfind(3) page from the C++ Standard Libary manual (yes, that's the manual name, typos and all π
). The NAME line is literally std::basic_string_view::rfind - std::basic_string_view::rfind, and she said it twice because she's iconic like that.
πΈ Synopsis πΈ
Here's the whole overload family, all since C++17, with every signature kept exactly as written:
(1)(since C++17):constexpr size_type rfind( basic_string_view v, size_type pos = npos ) const noexcept;(2)(since C++17):constexpr size_type rfind( CharT ch, size_type pos = npos ) const noexcept;(3)(since C++17):constexpr size_type rfind( const CharT* s, size_type pos, size_type count ) const;(4)(since C++17):constexpr size_type rfind( const CharT* s, size_type pos = npos ) const;
Finds the last substring that is equal to the given character sequence. The search begins at pos and proceeds from right to left (thus, the found substring, if any, cannot begin in a position following pos). If npos or any value not smaller than size() - 1 is passed as pos, the whole string will be searched.
(1)β Finds the last occurrence ofvin this view, starting at positionpos.(2)β Equivalent torfind(basic_string_view(std::addressof(ch), 1), pos).(3)β Equivalent torfind(basic_string_view(s, count), pos).(4)β Equivalent torfind(basic_string_view(s), pos).
π Parameters π
vβ view to search forposβ position at which to start the searchcountβ length of substring to search forsβ pointer to a character string to search forchβ character to search for
π Return value π
Position of the first character of the found substring or npos if no such substring is found. that's the whole vibe check, bestie.
π₯ Complexity π₯
O(size() * v.size()) at worst.
π Example π
// Run this code
#include <string_view>
int main()
{
using namespace std::literals;
constexpr auto N = std::string_view::npos;
static_assert(true
&& (6 == "AB AB AB"sv.rfind("AB"))
&& (6 == "AB AB AB"sv.rfind("ABCD", N, 2))
&& (3 == "AB AB AB"sv.rfind("AB", 5))
&& (0 == "AB CD EF"sv.rfind("AB", 0))
&& (2 == "B AB AB "sv.rfind("AB", 2))
&& (N == "B AB AB "sv.rfind("AB", 1))
&& (5 == "B AB AB "sv.rfind('A'))
&& (4 == "AB AB AB"sv.rfind('B', 4))
&& (N == "AB AB AB"sv.rfind('C'))
);
}
π¦ See also π¦
findβ find characters in the view (public member function)find_first_ofβ find first occurrence of characters (public member function)find_last_ofβ find last 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)rfindβ find the last occurrence of a substring (public member function ofstd::basic_string<CharT,Traits,Allocator>)
mwah π β source: http://cppreference.com, date: 2024.06.10, page: std::basic_..._view::rfind(3). now go slay those right-to-left searches, bestie π«Ά
π¦ 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