名前空間
変種
操作

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++14)
(C++11)
(C++11)(C++20以前)
(C++11)(C++20で非推奨)
(C++11)
型特性定数
メタ関数
(C++17)
エンディアン
(C++20)
サポートされている操作
関係と性質の問い合わせ
(C++11)
(C++11)
型変更
(C++11)(C++11)(C++11)
型変換
(C++11)
(C++11)
(C++17)
(C++11)(C++20以前)(C++17)
 
ヘッダ <cstddef> で定義
ヘッダ <cstdio> で定義
ヘッダ <cstdlib> で定義
ヘッダ <cstring> で定義
ヘッダ <ctime> で定義
ヘッダ <cwchar> で定義
typedef /*implementation-defined*/ size_t;

std::size_tsizeof 演算子sizeof... 演算子および alignof 演算子 (C++11およびそれ以降)の結果の符号なし整数型です。

[編集] ノート

std::size_t はあらゆる型 (配列を含む) の理論上可能なオブジェクトの最大サイズを格納できます。 サイズが std::size_t で表せない型は ill-formed です。 (C++14およびそれ以降) 多くのプラットフォームでは (例外はセグメント化されたアドレスを持つシステムです)、 std::size_t は任意の非メンバのポインタの値を安全に格納できます。 その場合 std::size_tstd::uintptr_t の同義語です。

std::size_t は一般的に配列のインデックスやループカウンタのために使用されます。 配列のインデックスに unsigned int などの他の型を使用するプログラムは、例えば64ビットのシステムにおいて、インデックスが UINT_MAX を超えるとき、または32ビットの剰余算術をあてにしている場合、失敗するかもしれません。

std::stringstd::vector などの C++ のコンテナをインデックスするとき、適切な型はそれらのコンテナが提供するメンバ型 size_type です。 これは通常 std::size_t の同義語として定義されます。

[編集]

#include <cstddef>
#include <iostream>
 
int main()
{
    const std::size_t N = 10;
    int* a = new int[N];
 
    for (std::size_t n = 0; n < N; ++n)
        a[n] = n;
    for (std::size_t n = N; n-- > 0;) // Reverse cycles are tricky for unsigned types.
        std::cout << a[n] << " ";
 
    delete[] a;
}

出力:

9 8 7 6 5 4 3 2 1 0

[編集] 関連項目

2つのポインタを減算したとき返される符号付き整数型
(typedef) [edit]
標準レイアウト型の先頭から指定されたメンバまでのバイトオフセット
(関数マクロ) [edit]