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

주어진 문자 시퀀스에 있는 문자 중 하나와 일치하는 첫 번째 문자를 찾습니다.

1) 이 뷰에서 v 의 문자들 중 하나가 처음으로 나타나는 위치를 pos 위치부터 찾습니다.
2) 다음에 해당함 find_first_of ( basic_string_view ( std:: addressof ( ch ) , 1 ) , pos ) .
3) 다음에 해당함 find_first_of ( basic_string_view ( s, count ) , pos ) .
4) 다음에 해당함 find_first_of ( basic_string_view ( s ) , pos ) .

목차

매개변수

v - 검색할 뷰
pos - 검색을 시작할 위치
count - 검색할 문자 열의 길이
s - 검색할 문자 열을 가리키는 포인터
ch - 검색할 문자

반환값

부분 문자열의 어떤 문자든 첫 번째로 나타나는 위치, 또는 npos 해당 문자가 발견되지 않을 경우.

복잡도

최악의 경우 O( size() * v. size() )입니다.

예제

#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() {}

참고 항목

뷰에서 문자 찾기
(public member function)
부분 문자열의 마지막 발생 찾기
(public member function)
문자의 마지막 발생 찾기
(public member function)
문자의 첫 번째 부재 찾기
(public member function)
문자의 마지막 부재 찾기
(public member function)
문자의 첫 번째 발생 찾기
( std::basic_string<CharT,Traits,Allocator> 의 public member function)