std::basic_string::npos(3)

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

✨ NAME ✨

okay so bestie, welcome to the std::basic_string::npos page in the C++ Standard Libary manual πŸ˜ŒπŸ’… and it is literally serving one iconic little constant: std::basic_string::npos - std::basic_string::npos (yes, the NAME section is doing self-reference realness, and we stan a mirror icon πŸͺžβœ¨).

🌸 Synopsis 🌸

static const size_type npos = -1;

This is a special value equal to the maximum value representable by the type size_type 🫢. The exact meaning depends on context, but it is generally used either as end of string indicator by the functions that expect a string index, or as the error indicator by the functions that return a string index. yes she is flexible like that πŸ’β€β™€οΈ.

πŸŽ€ Note πŸŽ€

Although the definition uses -1, size_type is an unsigned integer type, and the value of npos is the largest positive value it can hold, due to signed-to-unsigned implicit conversion ⚠️✨. This is a portable way to specify the largest value of any unsigned type. no cap, that is the whole trick πŸͺ„.

πŸ’– Example πŸ’–

Run this code, bestie:

// Run this code

#include <bitset>
#include <iostream>
#include <string>

int main()
{
    // string search functions return npos if nothing is found
    std::string s = "test";
    if (s.find('a') == s.npos)
        std::cout << "no 'a' in 'test'\n";

    // functions that take string subsets as arguments
    // use npos as the "all the way to the end" indicator
    std::string s2(s, 2, std::string::npos);
    std::cout << s2 << '\n';

    std::bitset<5> b("aaabb", std::string::npos, 'a', 'b');
    std::cout << b << '\n';
}

πŸ”₯ Output: πŸ”₯

no 'a' in 'test'
st
00011

πŸ‘€ See also πŸ‘€

  • npos β€” special value. The exact meaning depends on the context.
  • [static] (public static member constant of std::basic_string_view<CharT,Traits>)

mwah πŸ’‹ source: http://cppreference.com Β· version/date: 2024.06.10 Β· catch u later, bestie 🫢✨

πŸ“¦ where this page comes from