我正在学习C ++。我的类的一个数据成员应该是size_t
类型。现在size_t
不是内置的基本类型,而是一个定义的类型(作为一个通常至少和int一样大的无符号值),它在C ++周围被大量使用。
许多C ++库(例如iostream
或string
)会自动将size_t
添加到您当前的范围。
但是,我的班级不需要包含任何花哨的库。由于我希望尽可能保持精简,我只想包含负责创建size_t
的文件。
这是哪个库?
答案 0 :(得分:5)
您可以使用#include <cstddef>
答案 1 :(得分:4)
size_t
由<stddef.h>
在C ++和C中定义。
在C ++中,您也可以包含<cstddef>
,然后编写std::size_t
。普通size_t
可以编译或不编译,但不保证此标头可用。但是,我不建议这样做,因为它没有优势,并且存在如下问题:如果您忘记了std::
,或者在其他代码中没有包含它,那么代码可能无法与其他代码一起编译编译器。
由于在表达式中隐式转换为无符号通用类型存在问题,请考虑使用带符号的ptrdiff_t
代替size_t
,但模板参数除外。例外情况是因为至少有一个使用频繁的编译器在将非size_t
模板参数与例如原始数组大小。