2017-10-23 13 views
1

私は、クラスのゲームマスターマスターのバージョンを作成しています。しかし、私は残念ながらロードブロッキングを犯しました。私はプログラムのためのソリューションを構築するたびに、それはちょうど良いコンパイルが、私はランタイムエラーを取得します。それは "式:範囲外のベクトル添え字"です。誰がこのことが何を意味し、どのように修正するのかを知っていますか?これまでにオンラインで見つかったものは、何ら役立つものではありませんでした。(Visual C++)ゲームマスターマスターのバージョンを作成する

はここで、これまでのコードです: `

#include <iostream> 
#include <vector> 
#include <iomanip> 
using namespace std; 

//This is where the User is allowed to input the numbers of the secret code 
void chooseNumbers(int &howMany, int &howBig) { 
int i; 

vector<int> secret; 

cout << "What's the secret? " << endl; 
for (i = 0; i < howMany; ++i) { 
    cin >> secret[i]; 
} 

    if (secret[i] > howBig || secret[i] < 1) { 
     cout << "Numbers must be between 1 and " << howBig << endl; 

     cout << "What's the secret? " << endl; 
     for (i = 0; i < howMany; ++i) { 
      cin >> secret[i]; 
    } 
    } 
} 

int main() { 
    int howMany; 
    int howBig; 


    cout << "How many numbers? " << endl; 
    cin >> howMany; 

    cout << "How big can the numbers be? " << endl; 
    cin >> howBig; 

    chooseNumbers(howMany, howBig); 

} 
` 

答えて

1

[]オペレータは、単純に指定された位置にある要素への参照を返し、ベクター上の何もないので、あなたは範囲外です。代わりに

vector<int> secret; 

cout << "What's the secret? " << endl; 
for (i = 0; i < howMany; ++i) { 
    cin >> secret[i]; 
} 

push_back

を使用
関連する問題