--sas

Untitled

May 12th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. //
  2. // Created by stas on 5/5/19.
  3. //
  4.  
  5. #include "database.h"
  6.  
  7.  
  8. ostream& operator<< (ostream& os, const pair<Date, string>& unit) {
  9.     return os << unit.first << " " << unit.second;
  10. }
  11.  
  12. void Database::Add(const Date& date, const string& event) {
  13.     if(database_.count(date) > 0) {
  14.         const set<string>& events = database_[date].second;
  15.         if (events.count(event) != 0)
  16.             return;
  17.     }
  18.     database_[date].first.push_back(event);
  19.     database_[date].second.insert(event);
  20. }
  21.  
  22. void Database::Print(ostream& os) const {
  23.     for (const auto& c : database_) {
  24.         const Date& date = c.first;
  25.         const vector<string>& events = c.second.first;
  26.         for (const string &event : events)
  27.             os << date << " " << event << endl;
  28.     }
  29. }
  30.  
  31. pair<Date, string> Database::Last(const Date& date) const {
  32.     auto p = database_.upper_bound(date);
  33.     if (p == database_.begin())
  34.         throw invalid_argument("RAWR");
  35.     else
  36.         return pair{prev(p)->first, *(prev(p)->second.first.rbegin())};
  37. }
Add Comment
Please, Sign In to add comment