std::basic_..._view::find(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’… std::basic_..._view::find(3) β€” C++ Standard Libary

okay so bestie, you're on the std::basic_string_view::find page from the C++ Standard Libary manual, section 3. this one is literally the search queen for string views. no cap, she finds the first substring equal to the given character sequence. πŸ‘‘


✨ NAME ✨

std::basic_string_view::find β€” std::basic_string_view::find

it's giving "same name, same energy" β€” this page is the find member of std::basic_string_view. πŸŽ€


🌸 Synopsis 🌸

okay so the synopsis has four overloads, all since C++17, and they all find the first substring equal to the given character sequence. periodt. ✨

constexpr size_type find( basic_string_view v, size_type pos = 0 ) const noexcept;
(1) (since C++17)

constexpr size_type find( CharT ch, size_type pos = 0 ) const noexcept;
(2) (since C++17)

constexpr size_type find( const CharT* s, size_type pos, size_type count ) const;
(3) (since C++17)

constexpr size_type find( const CharT* s, size_type pos = 0 ) const;
(4) (since C++17)
  1. finds the first occurence of v in this view, starting at position pos.
  2. equivalent to find(basic_string_view(std::addressof(ch), 1), pos).
  3. equivalent to find(basic_string_view(s, count), pos).
  4. equivalent to find(basic_string_view(s), pos).

πŸŽ€ Parameters πŸŽ€

  • v β€” view to search for
  • pos β€” position at which to start the search
  • count β€” length of substring to search for
  • s β€” pointer to a character string to search for
  • ch β€” character to search for

πŸ’– Return value πŸ’–

the position of the first character of the found substring, or npos if no such substring is found. that's it. if it's not there, npos is your answer. 😭


πŸ¦‹ Complexity πŸ¦‹

O(size() * v.size()) at worst. highkey not the fastest, but she's doing the work. πŸ”₯


🌈 Example 🌈

// Run this code

#include <string_view>

int main()
{
    using namespace std::literals;

    constexpr auto str{" long long int;"sv};

    static_assert(
        1 == str.find("long"sv)            && "<- find(v , pos = 0)" &&
        6 == str.find("long"sv, 2)         && "<- find(v , pos = 2)" &&
        0 == str.find(' ')                 && "<- find(ch, pos = 0)" &&
        2 == str.find('o', 1)              && "<- find(ch, pos = 1)" &&
        2 == str.find("on")                && "<- find(s , pos = 0)" &&
        6 == str.find("long double", 5, 4) && "<- find(s , pos = 5,
       count = 4)"
    );

    static_assert(str.npos == str.find("float"));
}

πŸ‘‘ See also πŸ‘‘

  • rfind β€” find the last occurrence of a substring (public member function)
  • find_first_of β€” find first occurrence of characters (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 β€” finds the first occurrence of the given substring (public member function of std::basic_string<CharT,Traits,Allocator>)

mwah πŸ’‹ bestie, that's the page. source: http://cppreference.com, version/date: 2024.06.10, page: std::basic_..._view::find(3). go find your substring, icon. 🫢✨

πŸ“¦ where this page comes from