kyopro-lib

This documentation is automatically generated by online-judge-tools/verification-helper

View on GitHub

:warning: Operations
(Mylib/Wrapper/wrapped_set.cpp)

Operations

Requirements

Notes

Problems

References

Code

#pragma once
#include <functional>
#include <set>

namespace haar_lib {
  template <typename T, typename Compare = std::less<T>>
  class wrapped_set : public std::set<T, Compare> {
    using super = std::set<T, Compare>;

  public:
    const T& max() const {
      assert(not super::empty());
      return *super::rbegin();
    }

    const T& min() const {
      assert(not super::empty());
      return *super::begin();
    }

    bool contains(const T& x) const {
      return super::find(x) != super::end();
    }

    template <typename Predicate>
    void erase_if(Predicate pred) {
      for (auto it = super::begin(); it != super::end();) {
        if (pred(*it))
          it = super::erase(it);
        else
          ++it;
      }
    }
  };
}  // namespace haar_lib
#line 2 "Mylib/Wrapper/wrapped_set.cpp"
#include <functional>
#include <set>

namespace haar_lib {
  template <typename T, typename Compare = std::less<T>>
  class wrapped_set : public std::set<T, Compare> {
    using super = std::set<T, Compare>;

  public:
    const T& max() const {
      assert(not super::empty());
      return *super::rbegin();
    }

    const T& min() const {
      assert(not super::empty());
      return *super::begin();
    }

    bool contains(const T& x) const {
      return super::find(x) != super::end();
    }

    template <typename Predicate>
    void erase_if(Predicate pred) {
      for (auto it = super::begin(); it != super::end();) {
        if (pred(*it))
          it = super::erase(it);
        else
          ++it;
      }
    }
  };
}  // namespace haar_lib
Back to top page