Namespaces
Variants

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

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

Encuentra el primer carácter igual a cualquiera de los caracteres en la secuencia de caracteres dada.

1) Encuentra la primera ocurrencia de cualquiera de los caracteres de v en esta vista, comenzando en la posición pos .
2) Equivalente a find_first_of ( basic_string_view ( std:: addressof ( ch ) , 1 ) , pos ) .
3) Equivalente a find_first_of ( basic_string_view ( s, count ) , pos ) .
4) Equivalente a find_first_of ( basic_string_view ( s ) , pos ) .

Contenidos

Parámetros

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

Valor de retorno

Posición de la primera ocurrencia de cualquier carácter de la subcadena, o npos si no se encuentra dicho carácter.

Complejidad

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

Ejemplo

#include <string_view>
using namespace std::literals;
constexpr auto N = std::string_view::npos;
constexpr bool is_white_space(const char c)
{
    return " \t\n\f\r\v"sv.find_first_of(c) != N;
};
static_assert(
    1 == "alignas"sv.find_first_of("klmn"sv) &&
      //   └─────────────────────────┘
    N == "alignof"sv.find_first_of("wxyz"sv) &&
      //
    3 == "concept"sv.find_first_of("bcde"sv, /* pos= */ 1) &&
      //     └───────────────────────┘
    N == "consteval"sv.find_first_of("oxyz"sv, /* pos= */ 2) &&
      //
    6 == "constexpr"sv.find_first_of('x') &&
      //        └─────────────────────┘
    N == "constinit"sv.find_first_of('x') &&
      //
    6 == "const_cast"sv.find_first_of('c', /* pos= */ 4) &&
      //        └──────────────────────┘
    N == "continue"sv.find_first_of('c', /* pos= */ 42) &&
      //
    5 == "co_await"sv.find_first_of("cba", /* pos= */ 4) &&
      //       └───────────────────────┘
    7 == "decltype"sv.find_first_of("def", /* pos= */ 2, /* count= */ 2) &&
      //         └────────────────────┘
    N == "decltype"sv.find_first_of("def", /* pos= */ 2, /* count= */ 1) &&
      //
    is_white_space(' ') && is_white_space('\r') && !is_white_space('\a')
);
int main() {}

Véase también

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