string::nposについて(c++)
知らずに使ってた
string::nposはstring型のfindで見つからなかったときに返ってくる値です。
int main(){ string s = "aaa"; if(s.find('b') == string::npos) cout << "Not found" << endl; }
Not found
この前、int型にstring::nposを入れたら-1だったので、おかしいなぁーって思ってたので実験してみました。
int main(){ bitset<100> bit(string::npos); if(string::npos==INT64_MAX) cout<<"Yes"<<endl; if(string::npos==UINT64_MAX) cout<<"OhYes"<<endl; cout<<bit<<endl; }
OhYes 0000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111
int型の-1は全ビットが1なのでint型に入れたら-1になるよねー。