Advertisement
Guest User

Untitled

a guest
Jan 10th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include <set>
  5. #include <map>
  6.  
  7. using namespace std;
  8.  
  9. class Visitor {
  10.     string id;
  11.     string name;
  12.     unsigned int age;
  13. public:
  14.     string toString() {
  15.         ostringstream s;
  16.         s << this->id << " " << this->name << " " << this->age;
  17.         return s.str();
  18.     }
  19.  
  20.     string getId() const {
  21.         return this->id;
  22.     }
  23.  
  24.     string getName() const {
  25.         return this->name;
  26.     }
  27.  
  28.     unsigned int getAge() const {
  29.         return this->age;
  30.     }
  31.  
  32.     friend istream& operator>>(istream& stream, Visitor& visitor);
  33. };
  34.  
  35. istream& operator>>(istream& stream, Visitor& visitor) {
  36.     stream >> visitor.id >> visitor.name >> visitor.age;
  37. }
  38.  
  39. class IdComp {
  40. public:
  41.     bool operator()(const Visitor & a, const Visitor & b) const {
  42.         return a.getId() < b.getId();
  43.     }
  44. };
  45.  
  46. int main() {
  47.     typedef set<Visitor, IdComp> VisitorSet;
  48.     VisitorSet visitors;
  49.  
  50.     string command;
  51.     while (cin >> command) {
  52.         if (command == "end") {
  53.             break;
  54.         } else if (command == "entry") {
  55.             Visitor visitor;
  56.             cin >> visitor;
  57.             visitors.insert(visitor);
  58.         } else if (command == "name") {
  59.             string name;
  60.             cin >> name;
  61.  
  62.             int result = 0;
  63.             for (const Visitor& visitor : visitors) {
  64.                 if (visitor.getName() == name) {
  65.                     result++;
  66.                 }
  67.             }
  68.  
  69.             cout << result << endl;
  70.         } else if (command == "age") {
  71.             int startAge, endAge;
  72.             cin >> startAge >> endAge;
  73.  
  74.             int result = 0;
  75.             for (const Visitor& visitor : visitors) {
  76.                 if (visitor.getAge() >= startAge && visitor.getAge() < endAge) {
  77.                     result++;
  78.                 }
  79.             }
  80.  
  81.             cout << result << endl;
  82.         }
  83.     }
  84.  
  85.     return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement