1. ホーム
  2. c++

[解決済み】std::size_tはいつ使うの?

2022-04-04 13:40:35

質問

を使用すべきかどうか悩んでいます。 std::size_t の代わりに、ループなどのために int ? 例えば

#include <cstdint>

int main()
{
    for (std::size_t i = 0; i < 10; ++i) {
        // std::size_t OK here? Or should I use, say, unsigned int instead?
    }
}

一般的に、どのような場合に std::size_t ?

解決方法は?

経験則から言うと、ループの条件として比較する必要があるものは、当然ながら std::size_t そのものです。

std::size_t は、任意の sizeof C++では、あらゆるオブジェクト(配列を含む)の最大サイズを表現できることが保証されています。その延長として,配列のインデックスに対しても十分な大きさが保証されているので,配列のインデックスによるループの型としても自然です.

単に数を数えるだけであれば、その数を保持する変数の型か、あるいは int または unsigned int (十分な大きさがあれば)これらはマシンにとって自然なサイズであるべきだからです。