Namespaces
Variants

std::basic_string_view<CharT,Traits>:: rfind

From cppreference.net
constexpr size_type rfind ( basic_string_view v, size_type pos = npos ) const noexcept ;
(1) (seit C++17)
constexpr size_type rfind ( CharT ch, size_type pos = npos ) const noexcept ;
(2) (seit C++17)
constexpr size_type rfind ( const CharT * s, size_type pos, size_type count ) const ;
(3) (seit C++17)
constexpr size_type rfind ( const CharT * s, size_type pos = npos ) const ;
(4) (seit C++17)

Findet die letzte Teilzeichenfolge, die der gegebenen Zeichenfolge entspricht. Die Suche beginnt bei pos und verläuft von rechts nach links (daher kann die gefundene Teilzeichenfolge, falls vorhanden, nicht an einer Position beginnen, die nach pos liegt). Wenn npos oder ein Wert nicht kleiner als size() - 1 als pos übergeben wird, wird die gesamte Zeichenfolge durchsucht.

1) Findet das letzte Vorkommen von v in dieser Ansicht, beginnend bei Position pos .
2) Entspricht rfind ( basic_string_view ( std:: addressof ( ch ) , 1 ) , pos ) .
3) Entspricht rfind ( basic_string_view ( s, count ) , pos ) .
4) Entspricht rfind ( basic_string_view ( s ) , pos ) .

Inhaltsverzeichnis

Parameter

v - Ansicht, nach der gesucht werden soll
pos - Position, an der die Suche beginnen soll
count - Länge des zu suchenden Teilstrings
s - Zeiger auf einen zu suchenden Zeichenstring
ch - zu suchendes Zeichen

Rückgabewert

Position des ersten Zeichens der gefundenen Teilzeichenkette oder npos falls keine solche Teilzeichenkette gefunden wurde.

Komplexität

O( size() * v. size() ) im schlimmsten Fall.

Beispiel

#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'))
    );
}

Siehe auch

Zeichen in der Ansicht finden
(öffentliche Elementfunktion)
erstes Vorkommen von Zeichen finden
(öffentliche Elementfunktion)
letztes Vorkommen von Zeichen finden
(öffentliche Elementfunktion)
erste Abwesenheit von Zeichen finden
(öffentliche Elementfunktion)
letzte Abwesenheit von Zeichen finden
(öffentliche Elementfunktion)
letztes Vorkommen eines Teilstrings finden
(öffentliche Elementfunktion von std::basic_string<CharT,Traits,Allocator> )