std::size_t

来自cppreference.com
< cpp‎ | types
 
 
 
类型支持
基本类型
基础类型
定宽整数类型 (C++11)
size_t
(C++17)
数值极限
C 数值极限接口
运行时类型信息
类型特性
类型类别
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
类型属性
(C++11)
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(C++17中过时)
(C++11)
类型特性常量
元函数
(C++17)
受支持操作
关系与属性查询
(C++11)
(C++11)
(C++11)
(C++11)
类型修改
(C++11)
(C++11)
(C++11)
类型变换
(C++11)
(C++11)
(C++17)
(C++11)(C++17中过时)
(C++17)
 
定义于头文件 <cstddef>
定义于头文件 <cstdio>
定义于头文件 <cstring>
定义于头文件 <ctime>
typedef /*implementation-defined*/ size_t;

std::size_tsizeofalignof 操作符返回的一种无符号整数类型。

[编辑] 注解

size_t 可以存放下理论上可能存在的对象的最大大小,该对象可以是任何类型,包括数组。在许多平台上(使用分段寻址的系统除外),std::size_t 可以存放下任何非成员的指针,此时可以视作其与 std::uintptr_t 同义。

std::size_t 通常被用于数组索引和循环计数。使用其它类型来进行数组索引操作的程序可能会在某些情况下出错,例如在 64 位系统中使用 unsigned int 进行索引时,如果索引号超过 UINT_MAX 或者依赖于 32 位取模运算的话,程序就会出错。

在对诸如 std::stringstd::vector 等 C++ 容器进行索引操作时,正确的类型是该容器的成员 typedef size_type,而该类型通常被定义为与 std::size_t 相同。

[编辑] 示例

#include <cstddef>
int main()
{
    const std::size_t N = 100;
    int* a = new int[N];
    for(std::size_t n = 0; n<N; ++n)
        a[n] = n;
    delete[] a;
}


[编辑] 另请参阅

在两个指针相减时返回的有符号整数类型
(typedef) [编辑]
标准布局类型的成员相对类型起始地址的字符偏移量
(宏函数) [编辑]