Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <typename A>
- class Set {
- public:
- Set(){
- m_elements = std::vector<A>();
- }
- Set(const A &elem) {
- m_elements = {elem};
- }
- bool insert(const A &new_elem) {
- for (const auto &elem: m_elements) {
- if (elem == new_elem) {
- return false;
- }
- }
- m_elements.push_back(new_elem);
- return true;
- }
- bool remove(const A &to_remove) {
- for (int i = 0; i < m_elements.size(); i++) {
- if (m_elements[i] == to_remove) {
- m_elements.erase(m_elements.begin() + i);
- return true;
- }
- }
- return false;
- };
- bool operator<(Set other) {
- for (const auto &elem: m_elements) {
- if (std::find(other.m_elements.begin(), other.m_elements.end(), elem) == other.m_elements.end()) {
- return false;
- }
- }
- return true;
- };
- Set operator*(Set other) {
- Set<A> result;
- for (const auto &elem: m_elements) {
- if (std::find(other.m_elements.begin(), other.m_elements.end(), elem) != other.m_elements.end()) {
- result.insert(elem);
- }
- }
- return result;
- };
- private:
- std::vector<A> m_elements;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement