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 回答