プログラムの意図された性質は、ベクトルコンテナにランダムに数値を生成し、それらを昇順で並べ替えて、数値を出力することです。プログラムは正しくコンパイル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回表示し、残りの数字を昇順で表示します。
これは、print関数のforループに何かが間違っているためですが、ランダム化された整数のみを表示するようにベクトルを取得する方法がわかりません。
push_back
ベクトルに要素を追加するために使用しているので、空のベクトルから始める必要があります。つまり、あなたは交換する必要があるvector <int> myVector(VEC_SIZE);
とvector <int> myVector;
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加