名前空間
変種
操作

std::size_t

提供: cppreference.com
< cpp‎ | types
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
型サポート
基本的な型
基本型
固定幅の整数型 (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++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>
#include <array>
 
int main()
{
    std::array<std::size_t,10> a;
    for (std::size_t i = 0; i != a.size(); ++i)
        a[i] = i;
    for (std::size_t i = a.size()-1; i < a.size(); --i)
        std::cout << a[i] << " ";
}

出力:

9 8 7 6 5 4 3 2 1 0

[編集] 関連項目

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