lastseen.cpp 787 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "lastseen.h"
  2. // Initialized tracker with max count of item -1.
  3. LastSeen::LastSeen(int max) : tracker(max, -1) {
  4. this->max = max;
  5. tracker.reserve(max);
  6. /*
  7. while ((int)tracker.size() < max)
  8. tracker.insert(tracker.begin(), -1);
  9. */
  10. }
  11. /*
  12. int LastSeen::bestsize(int max_items) {
  13. int best = max_items / 2;
  14. return best;
  15. }
  16. */
  17. int LastSeen::getmax(void) { return this->max; }
  18. LastSeen::~LastSeen(){};
  19. bool LastSeen::seen_before(int this_one) {
  20. for (auto it = this->tracker.begin(); it != this->tracker.end(); ++it) {
  21. if (*it == this_one)
  22. return true;
  23. }
  24. // Ok, it hasn't been seen before.
  25. this->tracker.erase(this->tracker.begin());
  26. this->tracker.push_back(this_one);
  27. return false;
  28. }
  29. int LastSeen::best_guess(int max) { return max / 2; }