4

次のコードでsize_t(0)使用しているものと同じものを使用していますか?0

const string foo = "testing";
const size_t pos = foo.find("i");
string name = foo.substr(size_t(0), pos);

つまり、置くだけで?0に変換されます。size_t(0)もしそうなら、ある形式が他の形式よりも優先されますか? 私の推測ではsize_t(0)、変換が明示的になるため、これを使用するのが最適です。一方、おそらく一部のプログラマーはsize_t(0)冗長と見なしますか? 実際には誰も気にしないと思います。

4

2 に答える 2

4

つまり、0だけ入れるとsize_t(0)に変換されるのでしょうか?

次の理由から、変換は暗黙的substrです。

basic_string substr( size_type pos = 0,
                     size_type count = npos );

したがって、キャストは不要です。

于 2012-05-05T06:54:27.090 に答える
1

0 を同じ引数の型に型キャストしています。これは非常に良い方法ですが、これは暗黙的に変換されるため、必須ではありません。

string substr ( size_t pos = 0, size_t n = npos ) const;

これをチェックしてください。

于 2012-05-05T06:57:45.020 に答える