Guest User

Simulator

a guest
Jul 27th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <unordered_map>
  3. #include <string>
  4. #include <map>
  5. #include <random>
  6. #include <functional>
  7. #include <memory>
  8.  
  9. using namespace std;
  10.  
  11. static const char *names_list[] = {"Royal Ragusa", "Marcell Mcmillin", "Rona Raiford", "Lyle Lariviere", "Onie Onan", "Delicia Dowell", "Ernie Eaddy", "Alyssa Alderete", "Gladis Giglio", "George Gallow", "Alia Alexis", "Madie Masten", "Cherie Canady", "Fernando Filiault", "Cathey Coonrod", "Keiko Kowalewski", "Kathern Kellner", "Altagracia Acklin", "Yer Yurick", "Earleen Ebeling", "Carmella Cumbee", "Klara Kampf", "Marya Manuel", "Glennis Guadarrama", "Carri Craghead", "Kati Kiernan", "Kary Kauppi", "Eliana Eland", "Marcelle Magyar", "Kylie Ketterer", "Nguyet Nourse", "Emily Eggers", "Lizabeth Loaiza", "Willodean Wolfrum", "Soraya Sotomayor", "Laraine Leavens", "Aracely Arruda", "Lesley Lichtenstein", "Sheron Sorrell", "Marybelle Molder", "Wynona Winans", "Dina Duren", "Jimmy Job", "Peggy Peavler", "Myles Magoon", "Beulah Bruni", "Harland Ho", "Stefan Scalzo", "Nellie Nivens", "Rodney Rhone",
  12.                                    "Katelyn Kendall", "Caroline Calvin", "Herb Hendryx", "Lakendra Lovely", "Jamison Juarez", "Miss Mathewson", "Kathe Kamrowski", "Cortez Cumbee", "Zenaida Ziegler", "Buffy Beasley", "Doris Durant", "Nisha Nipper", "Carlos Cosenza", "Jessica Jahnke", "Lynda Lightcap", "Armandina Angelo", "Almeta Arana", "Beckie Behringer", "Florida Francese", "Jung Juarez", "Inger Ison", "Joellen Jelley", "Akiko Azevedo", "Krystina Knighton", "Sulema Steward", "Tonja Tinajero", "Joline Jurgens", "Mignon Marcano", "Selena Stanback", "Annetta Almanza", "Jaye Johannes", "Raylene Reichert", "Wendy Weidman", "Joetta Jeanlouis", "Lorilee Laborde", "Kerstin Kleiner", "Hollie Huisman", "Sharon Sam", "Patrice Pettway", "Ardith Acosta", "Winnifred Winberg", "Bridget Bosak", "Lashawnda Lorusso", "Nguyet Neitzel", "Brittany Blakey", "Janette Jaggers", "Otis Olveda", "Rashida Rife", "Lizbeth Lightfoot", "Cori Cornejo"};
  13.  
  14. static std::random_device randomdevice;
  15. static std::default_random_engine randomengine(randomdevice());
  16. static std::uniform_int_distribution<int> random_uniform_1_100(1, 100);
  17. static auto random_bornday = std::bind(random_uniform_1_100, randomengine);
  18. static bool random_ismale() { return (random_uniform_1_100(randomengine) <= 80) ? true : false; }
  19. static string random_name() { return string(names_list[random_uniform_1_100(randomengine) - 1]); }
  20.  
  21. struct Individual
  22. {
  23. public:
  24.     Individual(const string &_name, int _bornday, bool _ismale);
  25.     Individual(const Individual &o);
  26.     ~Individual();
  27.     string name;
  28.     int bornday;
  29.     bool ismale;
  30. };
  31.  
  32. Individual::Individual(const string &_name, int _bornday, bool _ismale) :
  33.     name(_name), bornday(_bornday), ismale(_ismale)
  34. {
  35.     cout << "  " << (ismale ? "Male" : "Female") << " of name, " << name << ", bornday " << bornday << " is created." << endl;
  36. }
  37.  
  38. Individual::Individual(const Individual &o) :
  39.     name(random_name()), bornday(o.bornday), ismale(o.ismale)
  40. {
  41.     cout << (ismale ? "Male" : "Female") << " twin of " <<  o.name <<" with name " << name << ", bornday " << bornday << " is created." << endl;
  42. }
  43.  
  44. Individual::~Individual()
  45. {
  46.     cout << "  " << (ismale ? "Male" : "Female") << " of name, " << name << ", bornday " << bornday << " is destroyed." << endl;
  47. }
  48.  
  49. Individual* generate_individual()
  50. {
  51.     return new Individual(random_name(), random_bornday(), random_ismale());
  52. }
  53.  
  54. int main()
  55. {
  56.     unordered_map<string, Individual> population;
  57.     Individual("Adam", 1, true);
  58.     Individual("Eve", 1, false);
  59.     unique_ptr<Individual> cutiepie = unique_ptr<Individual>(generate_individual());
  60.     while(cutiepie->ismale)
  61.     {
  62.         cutiepie.reset(generate_individual());
  63.     }
  64.     Individual cutiepie_sister = *cutiepie;
  65.  
  66.     return 0;
  67. }
Add Comment
Please, Sign In to add comment