C++样式和 0 到 size_t(0) 的转换

C++ style and conversion of 0 to size_t(0)

本文关键字:转换 size 样式 C++      更新时间:2023-10-16

使用以下代码中使用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)冗长?我猜在实践中没有人在乎这两种方式。

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

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

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

因此,您的演员阵容是多余的。

您正在将 0 转换为相同的参数类型,这是一种非常好的做法,但不是必需的,因为这将被隐式转换。

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

看看这个。