为什么我需要在C++中使用`size_t`?

kev*_*n4z 7 c++ visual-c++ c++11

作为初学者,我真的很困惑size_t.我可以使用int,float或其他类型.为什么还要声明size_t类型.我感觉不到它的优点.我看过一些页面,但我仍然无法理解.

Lig*_*ica 20

它的主要优点是它是适合这项工作的正确工具.

size_t字面意思是定义为足以表示平台上任何对象的大小.其他人不是.因此,当您想要存储对象的大小时,为什么还要使用其他任何东西

int如果你愿意,你可以使用,但你会故意选择导致错误的劣质选项.我不太明白你为什么要这样做,但是嘿,这是你的代码.

float但是,如果您选择使用,请告诉我们您正在编写的程序,以便我们可以避免使用它.:)

  • 只是为了激起一点,请注意,严格来说,你应该使用`vector <int> :: size_type`作为矢量大小的类型.它不一定*必须与`std :: size_t`相同!虽然为了轻松生活,但只需使用`auto`. (4认同)
  • 除此之外:一个常见的例子是将索引放入数组,`std :: vector`或类似容器的函数.`size_t`是保证足够大的类型,表示可以合法地成为这种容器的有效索引的所有值. (2认同)
  • @Bathsheba严格来说,由于`vector`是连续的,所以平台上的`size_t`不应大于或等于`vector <T> :: size_type`?对于非连续的容器,我想一些非常奇特的实现和内存架构可能*假设*允许您保存大于最大理论对象的总大小(以字节为单位)的对象... (2认同)