◐ Shell
clean mode source ↗

std::size_t - cppreference.com

提供: cppreference.com

<tbody> </tbody>

ヘッダ <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] << " ";
}

出力:

関連項目