std::size_t を使用する場合
質問:
を置き換えることをお勧めしますかループやその他のコンテキストの int の std::size_t?
Context:
次のコード スニペットを考えてみましょう:
<code class="c++">#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? } }</code>
回答:
一般に、std::size_t は、本質的にこの型の値に対して比較が行われるループ条件に最適です。
理由:
std::size_t は、任意の sizeof 式の型として定義されます。配列を含むあらゆる C オブジェクトの最大サイズを表現できることが保証されます。その結果、配列インデックスに十分な容量が保証され、配列インデックスに基づくループ反復では自然な選択になります。
たとえば、指定されたコード スニペットでは、ループ変数 i が配列インデックスとして使用されるため、 std::size_t は、使用するのに適切な型です。
例外:
単に所定の数までカウントする状況では、変数の値を利用する方が適切な場合があります。データ型、int、または unsigned int (サイズが許容される場合)。これらは本質的にマシンのアーキテクチャと一致するためです。
以上がループに「int」ではなく「std::size_t」を選択するのが最適な場合は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。