Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. template <typename A>
  2. class Set {
  3. public:
  4. Set(){
  5. m_elements = std::vector<A>();
  6. }
  7. Set(const A &elem) {
  8. m_elements = {elem};
  9. }
  10. bool insert(const A &new_elem) {
  11. for (const auto &elem: m_elements) {
  12. if (elem == new_elem) {
  13. return false;
  14. }
  15. }
  16. m_elements.push_back(new_elem);
  17. return true;
  18. }
  19. bool remove(const A &to_remove) {
  20. for (int i = 0; i < m_elements.size(); i++) {
  21. if (m_elements[i] == to_remove) {
  22. m_elements.erase(m_elements.begin() + i);
  23. return true;
  24. }
  25. }
  26. return false;
  27. };
  28. bool operator<(Set other) {
  29. for (const auto &elem: m_elements) {
  30. if (std::find(other.m_elements.begin(), other.m_elements.end(), elem) == other.m_elements.end()) {
  31. return false;
  32. }
  33. }
  34. return true;
  35. };
  36. Set operator*(Set other) {
  37. Set<A> result;
  38. for (const auto &elem: m_elements) {
  39. if (std::find(other.m_elements.begin(), other.m_elements.end(), elem) != other.m_elements.end()) {
  40. result.insert(elem);
  41. }
  42. }
  43. return result;
  44. };
  45. private:
  46. std::vector<A> m_elements;
  47. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement