Назначение программы - случайное генерирование чисел в векторный контейнер, затем сортировка их в порядке возрастания и печать чисел. Программа правильно компилируется, но также сортирует и печатает значение 0
для каждого сгенерированного числа.
#include "stdafx.h"
//contains all header files (ctime, algorithm, iostream, vector), also
defines const vector size as 250
using namespace std;
void genRndNums(vector <int> &v);
void printVec(vector <int> &v);
int main()
{
vector <int> myVector(VEC_SIZE);
genRndNums(myVector);
printVec(myVector);
return 0;
}
void genRndNums(vector <int> &v)
{
int v1;
srand(time(nullptr));
for (int i = 0; i < VEC_SIZE; i++)
{
v1 = rand() % 1000 + 1;
v.push_back(v1);
//v.push_back(rand() % 1000 + 1);
}
}
void printVec(vector <int> &v)
{
vector<int>::iterator it;
sort(v.begin(), v.end());
for (it = v.begin(); it != v.end(); it++)
{
cout << *it << " ";
}
}
В случае, если были напечатаны 250
числа, будет отображаться целое число 0
250 раз , а затем отображаться остальные числа в порядке возрастания.
Это связано с тем, что в цикле for в функции print что-то смещено, но я не уверен, как заставить вектор отображать только рандомизированные целые числа.