C ++样式并将0转换为size_t(0)

时间:2012-05-05 06:50:05

标签: c++ substr

在以下代码中使用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)?如果是这样,一种形式优先于另一种吗?我的猜测是t(0)是最好用的,因为它使转换显式化。另一方面,也许一些程序员认为size_t(0)详细?我在实践中猜测没有人关心。

2 个答案:

答案 0 :(得分:4)

  

也就是说,当我只放0时它会转换为size_t(0)?

转换是隐式的,因为substr是:

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

因此你的演员阵容是多余的。

答案 1 :(得分:1)

你输入的0是相同的参数类型,这是一个非常好的做法,但不是必要的,因为这将被隐式转换。

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

查看this