#include <algorithm>
#include <chrono>
#include <iostream>
#include <random>
#include <string>
using namespace std;
class Data {
public:
string get_random() const {
vector<string*> data{ a, b, c, d };
const auto seed = static_cast<unsigned>(chrono::system_clock::now().time_since_epoch().count());
shuffle(data.begin(), data.end(), default_random_engine(seed));
return *data.front();
}
void set_a(string* value) { a = value; }
void set_b(string* value) { b = value; }
void set_c(string* value) { c = value; }
void set_d(string* value) { d = value; }
string get_a() const { return *a; }
string get_b() const { return *b; }
string get_c() const { return *c; }
string get_d() const { return *d; }
private:
string* a;
string* b;
string* c;
string* d;
};
void show(const Data& data) {
cout << "1. " << data.get_a() << '\n';
cout << "2. " << data.get_b() << '\n';
cout << "3. " << data.get_c() << '\n';
cout << "4. " << data.get_d() << '\n';
puts("-----"
;
}
void show(const Data& data, size_t n) {
if
while (n--) cout << data.get_random() << '\n';
puts("-----"
;
}
int main() {
string a{ "one" };
string b{ "two" };
string c{ "three" };
string d{ "four" };
Data data{};
data.set_a(&a);
data.set_b(&b);
data.set_c(&c);
data.set_d(&d);
show(data);
size_t n = 12;
show(data, n);
show(data);
a = "five";
b = "six";
c = "seven";
d = "eight";
show(data);
show(data, n);
show(data);
}