ランダムに生成された数値で満たされたベクトルを取得しようとしていますが、実行するとソート後に 2 つの数値しか得られないという問題があります。
0 0 0 0 0 17 17 17
これは私のコードなので、私が間違っていることを教えてください
#include <iostream>
#include <random>
#include <functional>
using namespace std;
using namespace std::chrono;
class Rand_int {
public:
Rand_int(int low, int high) :dist{low,high} {
for (int i = 0; i < 100; i++)
cout << "Generated: " << dist(re) << endl;
num = dist(re); }
int operator()() { return dist(re);}
int getNum() const
{
return num;
}
bool operator()(int x) const
{
return (num <= x);
}
private:
default_random_engine re;
uniform_int_distribution<> dist;
int num;
};
int main()
{
int n=10;
vector<int> v(n);
Rand_int rnd {0,20}; // make a uniform random number generator
for (int i=0; i<n; i++)
{
vector<int>::iterator iter = find_if(v.begin(), v.end(), rnd);
v.insert(iter, rnd.getNum());
}
for (vector<int>::const_iterator iter = v.begin(); iter != v.end(); iter++)
cout << *iter << endl;
return 0;
}