c++randomvectorsrand

Fill a vector with random numbers c++


I've got a vector that I'm trying to fill up with random numbers. I keep running into an issue however that the vector mostly outputs 0 each time that I'm running it (it shouldn't output a 0 ever). What am I doing wrong in my code written below to make it output 0 (it outputs 0 more so than any other number):

vector<int> myVector;
srand((unsigned)time(NULL));
int a = rand() % 20 + 1; //1 to 20    
for (int i =0; i < a; i++){
        int b = rand() % 20 + 1;
        myVector.push_back(b);
        cout << myVector[b] << endl;
    }

I am a beginner and have not done much C++ programming in a long time so I'm not sure what is making my code malfunction. If someone could explain what I've done wrong it would be greatly appreciated.


Solution

  • You are calling the wrong index in your vector

    Try doing:

    cout << myVector[i] << endl;
    

    else you will risk running off the end of your vertex for the first 20 or so iterations.

    You can also call .back() on your vector to get the last item in the vector.