string::find
で値が見つからなかった場合に返す値として定義されています。
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.
雑に訳せば「size_typeのとりうる最大値」となります。size_type
はunsigned int
で示されており、補数表現の最大値と-1
が等価になるため、-1
とされているのだと思います。