[解決済み】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
(十分な大きさがあれば)これらはマシンにとって自然なサイズであるべきだからです。
関連
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] 仮想デストラクタはいつ使うのか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】C言語におけるsize_tとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】Enterキーを押して続行する
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み】C/C++の"-->"演算子とは何ですか?