Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by stas on 5/5/19.
- //
- #include "database.h"
- ostream& operator<< (ostream& os, const pair<Date, string>& unit) {
- return os << unit.first << " " << unit.second;
- }
- void Database::Add(const Date& date, const string& event) {
- if(database_.count(date) > 0) {
- const set<string>& events = database_[date].second;
- if (events.count(event) != 0)
- return;
- }
- database_[date].first.push_back(event);
- database_[date].second.insert(event);
- }
- void Database::Print(ostream& os) const {
- for (const auto& c : database_) {
- const Date& date = c.first;
- const vector<string>& events = c.second.first;
- for (const string &event : events)
- os << date << " " << event << endl;
- }
- }
- pair<Date, string> Database::Last(const Date& date) const {
- auto p = database_.upper_bound(date);
- if (p == database_.begin())
- throw invalid_argument("RAWR");
- else
- return pair{prev(p)->first, *(prev(p)->second.first.rbegin())};
- }
Add Comment
Please, Sign In to add comment