Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>:: npos

From cppreference.net
std::basic_string
static const size_type npos = - 1 ;

이는 size_type 타입으로 표현 가능한 최대값과 동일한 특별한 값입니다. 정확한 의미는 문맥에 따라 다르지만, 일반적으로 문자열 인덱스를 기대하는 함수들에 의해 문자열의 끝 표시자로 사용되거나, 문자열 인덱스를 반환하는 함수들에 의해 오류 표시자로 사용됩니다.

참고

정의에서는 - 1 를 사용하지만, size_type 은 부호 없는 정수 타입이며, 부호-없는 암시적 변환 으로 인해 npos 의 값은 이 타입이 가질 수 있는 가장 큰 양수 값입니다. 이것은 어떤 부호 없는 타입의 최대값을 지정하는 이식성 있는 방법입니다.

예제

#include <bitset>
#include <iostream>
#include <string>
int main()
{
    // 문자열 검색 함수는 아무것도 찾지 못하면 npos를 반환합니다
    std::string s = "test";
    if (s.find('a') == s.npos)
        std::cout << "no 'a' in 'test'\n";
    // 문자열 부분집합을 인자로 받는 함수들은
    // npos를 "끝까지 모두"를 나타내는 지시자로 사용합니다
    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';
}

출력:

no 'a' in 'test'
st
00011

참고 항목

[static]
특수 값. 정확한 의미는 문맥에 따라 다름
( std::basic_string_view<CharT,Traits> 의 public static 멤버 상수)