C ++:只想使用size_t时要包含哪些库?

时间:2016-09-27 05:59:16

标签: c++ include size-t

我正在学习C ++。我的类的一个数据成员应该是size_t类型。现在size_t不是内置的基本类型,而是一个定义的类型(作为一个通常至少和int一样大的无符号值),它在C ++周围被大量使用。

许多C ++库(例如iostreamstring)会自动将size_t添加到您当前的范围。

但是,我的班级不需要包含任何花哨的库。由于我希望尽可能保持精简,我只想包含负责创建size_t的文件。

这是哪个库?

2 个答案:

答案 0 :(得分:5)

您可以使用#include <cstddef>

另请参阅此处了解详情http://www.cplusplus.com/reference/cstddef/

答案 1 :(得分:4)

size_t<stddef.h>在C ++和C中定义。

在C ++中,您也可以包含<cstddef>,然后编写std::size_t。普通size_t可以编译或不编译,但不保证此标头可用。但是,我不建议这样做,因为它没有优势,并且存在如下问题:如果您忘记了std::,或者在其他代码中没有包含它,那么代码可能无法与其他代码一起编译编译器。

由于在表达式中隐式转换为无符号通用类型存在问题,请考虑使用带符号的ptrdiff_t代替size_t,但模板参数除外。例外情况是因为至少有一个使用频繁的编译器在将非size_t模板参数与例如原始数组大小。