1. ホーム
  2. c++

[解決済み] なぜstd::stouはないのですか?

2022-09-24 01:51:52

疑問点

C++11 では、いくつかの新しい文字列変換関数が追加されました。

http://en.cppreference.com/w/cpp/string/basic_string/stoul

stoi (string to int), stol (string to long), stoll (string to long long), stoul (string to unsigned long), stoull (string to unsigned long long) が含まれます。注目すべきは、stou (string to unsigned)関数がないことです。他のすべての関数が必要なのに、それが必要ないのは何か理由があるのでしょうか?

に関連しています。 C++11 では "sto{short, unsigned short}" 関数はないのですか?

どのように解決するのですか?

最も簡単な答えは、C ライブラリには対応する " strtou " がなく、C++11 の文字列関数はすべて C ライブラリ関数の薄いベールに包まれたラッパーに過ぎないということです。つまり std::sto* 関数は strto* であり std::to_string の関数は sprintf .


編集: KennyTM が指摘するように、両方の stoistol を使う strtol という変換関数がありますが、なぜ stoul を使用する strtoul を使用する場合、対応する stou .