std::basic_...ind_first_of(3)
πΈ NAME πΈ
okay so you're on the std::basic_...ind_first_of(3) page from the C++ Standard Libary manual (yes, that's the manual name as printed, bestie π
), and the whole icon of this page is:
std::basic_string_view::find_first_ofβstd::basic_string_view::find_first_of
β¨ Synopsis β¨
four overloads, all constexpr size_type, all since C++17. here's the synopsis exactly as it was handed to me:
constexpr size_type
find_first_of( basic_string_view v, size_type pos = 0 ) const
(1) (since C++17)
noexcept;
constexpr size_type
(2) (since C++17)
find_first_of( CharT ch, size_type pos = 0 ) const noexcept;
constexpr size_type
find_first_of( const CharT* s, size_type pos, size_type count
(3) (since C++17)
) const;
constexpr size_type
(4) (since C++17)
find_first_of( const CharT* s, size_type pos = 0 ) const;
quick vibe check: overloads (1) and (2) are the noexcept girlies, and all four are constexpr size_type with since C++17 energy π«Ά
π DESCRIPTION π
okay so the core sentence is literally:
Finds the first character equal to any of the characters in the given character sequence.
and here's the overload-by-overload tea:
- 1) Finds the first occurrence of any of the characters of
vin this view, starting at positionpos. - 2) Equivalent to
find_first_of(basic_string_view(std::addressof(ch), 1), pos). - 3) Equivalent to
find_first_of(basic_string_view(s, count), pos). - 4) Equivalent to
find_first_of(basic_string_view(s), pos).
no cap, that's the whole search situation π
π Parameters π
vβ view to search forposβ position at which to start the searchcountβ length of the string of characters to search forsβ pointer to a string of characters to search forchβ character to search for
π¦ Return value π¦
Position of the first occurrence of any character of the substring, or npos if no such character is found. that's it, that's the return value, periodt π«Ά
π₯ Complexity π₯
O(size() * v.size()) at worst.
not me doing a little complexity vibe check and finding it at worst, but okay, we move π
π Example π
run this code, bestie β the comments are literal little maps πΊοΈβ¨
// Run this code
#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() {}
π See also π
findβ find characters in the view (public member function)rfindβ find the last occurrence of a substring (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)find_first_ofβ find first occurrence of characters (public member function ofstd::basic_string<CharT,Traits,Allocator>)
mwah π source: http://cppreference.com Β· version/date: 2024.06.10 Β· page: std::basic_...ind_first_of(3)
π¦ 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