1、size_t类型:size_t类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版本。它是一个与机器相关的unsigned类型,其大小足以保证存储内存对象的大小。
在vector,string和bitset的size操作返回值的类型都是size_t类型。
size_t sz=bitvec.size();
2、size_t的真实类型与操作系统有关,在32位架构中被普遍定义为:
1
|
typedef unsigned int size_t;
|
而在64位架构中被定义为:
1
|
typedef unsigned long size_t;
|
size_t在32位架构上是4字节,在64位架构上是8字节,在不同架构上进行编译时需要注意这个问题。
而int在不同架构下都是4字节,与size_t不同;且int为带符号数,size_t为无符号数。
3、size_type:由string类类型和vector类类型定义的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型
4、string::size_type 制类型一般就是unsigned int, 但是不同机器环境长度可能不同 win32 和win64上长度差别;size_type一般也是unsigned int;