Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "database.h"
- void
- Database::Add(const Date &date, const string &event)
- {
- auto &events = database[date];
- set<string> &events_set = events.first;
- vector<string> &events_vector = events.second;
- if (!events_set.empty() && events_set.count(event)==0)
- {
- events_vector.push_back(event);
- events_set.insert(event);
- }
- }
- void
- Database::Print(ostream &out) const
- {
- for (auto const &date: database)
- {
- const vector<string> &events_vector = date.second.second;
- for (auto const &event : events_vector)
- {
- out << date.first << ' ' << event << endl;
- }
- }
- }
- string
- Database::Last(const Date &date) const
- {
- ostringstream out;
- auto it = database.lower_bound(date);
- if (database.empty())
- {
- out << "No entries";
- }
- else if (it==end(database))
- {
- out << prev(it)->first << ' ' << prev(it)->second.second.back();
- }
- else if (it==begin(database))
- {
- if (database.count(date)==1)
- {
- out << it->first << ' ' << it->second.second.back();
- }
- else
- {
- out << "No entries";
- }
- }
- else if (it->first==date)
- {
- out << it->first << ' ' << it->second.second.back();
- }
- else if (date < it->first)
- {
- out << prev(it)->first << ' ' << prev(it)->second.second.back();
- }
- return out.str();
- }
Add Comment
Please, Sign In to add comment