Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <list>
- using namespace std;
- template <typename T>
- class Set {
- list<T> set;
- public:
- Set() {}
- Set(T t) {
- set.insert(t);
- }
- ~Set() {
- set.clear();
- }
- void insert(T t) {
- if (!search(t)) {
- set.push_back(t);
- }
- }
- bool search(T t) {
- for (auto i = set.begin(); i != set.end(); ++i) {
- if ((*i) == t) {
- return true;
- }
- }
- return false;
- }
- Set unite(Set s) {
- Set newSet;
- newSet.set.merge(this->set);
- newSet.set.merge(s.set);
- newSet.set.unique();
- return newSet;
- }
- Set intersection(Set s) {
- Set newSet;
- for (auto i = s.set.begin(); i != s.set.end(); ++i) {
- if (this->search(*i)) {
- newSet.insert(*i);
- }
- }
- return newSet;
- }
- Set difference(Set s) {
- Set newSet;
- for (auto i = set.begin(); i != set.end(); ++i) {
- if (!s.search(*i)) {
- newSet.insert(*i);
- }
- }
- return newSet;
- }
- bool include(Set s) {
- for (auto i = s.set.begin(); i != s.set.end(); ++i) {
- if (!this->search(*i)) {
- return false;
- }
- }
- return true;
- }
- void print() {
- for (auto i = set.begin(); i != set.end(); ++i) {
- cout << *i << " ";
- }
- cout << endl;
- }
- private:
- };
- int main() {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement