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) (desde C++17)
constexpr size_type rfind ( CharT ch, size_type pos = npos ) const noexcept ;
(2) (desde C++17)
constexpr size_type rfind ( const CharT * s, size_type pos, size_type count ) const ;
(3) (desde C++17)
constexpr size_type rfind ( const CharT * s, size_type pos = npos ) const ;
(4) (desde C++17)

Encuentra la última subcadena que es igual a la secuencia de caracteres dada. La búsqueda comienza en pos y procede de derecha a izquierda (por lo tanto, la subcadena encontrada, si existe, no puede comenzar en una posición posterior a pos ). Si se pasa npos o cualquier valor no menor que size() - 1 como pos , se buscará en toda la cadena.

1) Encuentra la última ocurrencia de v en esta vista, comenzando desde la posición pos .
2) Equivalente a rfind ( basic_string_view ( std:: addressof ( ch ) , 1 ) , pos ) .
3) Equivalente a rfind ( basic_string_view ( s, count ) , pos ) .
4) Equivalente a rfind ( basic_string_view ( s ) , pos ) .

Contenidos

Parámetros

v - vista a buscar
pos - posición en la que iniciar la búsqueda
count - longitud de la subcadena a buscar
s - puntero a una cadena de caracteres a buscar
ch - carácter a buscar

Valor de retorno

Posición del primer carácter de la subcadena encontrada o npos si no se encuentra dicha subcadena.

Complejidad

O( size() * v. size() ) en el peor caso.

Ejemplo

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

Véase también

buscar caracteres en la vista
(función miembro pública)
buscar primera ocurrencia de caracteres
(función miembro pública)
buscar última ocurrencia de caracteres
(función miembro pública)
buscar primera ausencia de caracteres
(función miembro pública)
buscar última ausencia de caracteres
(función miembro pública)
buscar la última ocurrencia de una subcadena
(función miembro pública de std::basic_string<CharT,Traits,Allocator> )