[解決済み] 'std::out_of_range' のインスタンスを投げた後に呼び出された終了処理
2022-01-12 08:10:22
質問
コードは次のとおりです。
#include <vector>
#include <iostream>
#include <random>
#include <time.h>
using namespace std;
using std::vector;
int main()
{
vector<int> deck;
vector<int> nums;
default_random_engine eng(time(0));
uniform_int_distribution<int> dis(0, 51);
int pos1;
int pos2;
int num1;
int num2;
int i;
int n;
int m;
for (i = 0; i < 52; i++)
{
nums.push_back(i);
}
for(int j = 0; j < 52; j++)
{
cout << nums.at(i) << "\n";
}
for(n = 0; n < 50; n++)
{
pos1 = dis(eng);
pos2 = dis(eng);
cout << pos1 << "\n" << pos2 << "\n";
num1 = deck.at(pos1);
num2 = deck.at(pos2);
}
}
実行すると、エラーが発生します。
std::out_of_range' what(): vector:_M_range_check
解決方法は?
タイプミスが原因のように見えますが、2つ目のループで変数「j」を使用する必要があります。最初のループの後です。
for (i = 0; i < 52; i++)
{
nums.push_back(i);
}
変数 'i' には 52 という値が含まれているので、 nums.at(i) を呼び出すと std::out_of_range がスローされることが予想されます。
for(int j = 0; j < 52; j++)
{
cout << nums.at(i) << "\n";
}
at()の引数を本来の意図と思われる'j'に置き換えて修正する。
for(int j = 0; j < 52; j++)
{
cout << nums.at(j) << "\n";
}
関連
-
linux シェル学習ノート 2日目
-
[解決済み】プッシュしようとするとGitエラーになる -- pre-receive フックが減少した
-
[解決済み】ValueError: shape mismatch: オブジェクトを1つの形状にブロードキャストできない
-
[解決済み】「Error: デフォルトのデータセット例mtcarsとggplot2における「離散的なスケールに連続的な値が供給された」。
-
[解決済み】gitが「Pull is not possible because you have unmerged files」と言うのはなぜですか?
-
[解決済み】データフレームで関数を適用する場合、dim(X)は正の長さでなければならない
-
[解決済み] 'push_back' の呼び出しに対応するメンバ関数がないエラー
-
[解決済み】math.hを含むにもかかわらず、C言語でpow( )への未定義参照【重複あり
-
[解決済み】拡張メソッドは、一般的でない静的クラスで定義する必要がある
-
[解決済み] std::stringのインスタンスを小文字に変換する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】入力文字列のフォーマットが正しくない
-
[解決済み】'const char*' から 'char*' への無効な変換。
-
[解決済み】なぜ「Pickle - EOFError.」が発生するのでしょうか?空のファイルを読むと「Ran out of input」と表示されるのはなぜですか?
-
[解決済み] メインループの 'builtin_function_or_method' オブジェクトが反復可能でない
-
[解決済み】git pullの取り消し、レポを古い状態に戻す方法
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み】ウィンドウ階層にないビューを持つUIViewControllerでUIViewControllerを表示しようとする
-
[解決済み】C#でクエスチョンマークを2つ並べるとどんな意味になるのか?
-
[解決済み】拡張メソッドは、一般的でない静的クラスで定義する必要がある