# cuchar

***

**1. Finding the Intersection of Two Vectors**

```cpp
#include <cuchar>
#include <vector>

int main() {
  std::vector<int> v1 = {1, 2, 3};
  std::vector<int> v2 = {2, 4, 6};

  auto intersection = std::cuchar::intersection(v1, v2);
  for (auto it : intersection) {
    std::cout << it << " ";
  }
  std::cout << std::endl;

  return 0;
}
```

**2. Finding the Union of Two Vectors**

```cpp
#include <cuchar>
#include <vector>

int main() {
  std::vector<int> v1 = {1, 2, 3};
  std::vector<int> v2 = {2, 4, 6};

  auto union_set = std::cuchar::union_set(v1, v2);
  for (auto it : union_set) {
    std::cout << it << " ";
  }
  std::cout << std::endl;

  return 0;
}
```

**3. Finding the Difference of Two Vectors**

```cpp
#include <cuchar>
#include <vector>

int main() {
  std::vector<int> v1 = {1, 2, 3};
  std::vector<int> v2 = {2, 4, 6};

  auto difference = std::cuchar::difference(v1, v2);
  for (auto it : difference) {
    std::cout << it << " ";
  }
  std::cout << std::endl;

  return 0;
}
```

**4. Finding the Symmetric Difference of Two Vectors**

```cpp
#include <cuchar>
#include <vector>

int main() {
  std::vector<int> v1 = {1, 2, 3};
  std::vector<int> v2 = {2, 4, 6};

  auto symmetric_difference = std::cuchar::symmetric_difference(v1, v2);
  for (auto it : symmetric_difference) {
    std::cout << it << " ";
  }
  std::cout << std::endl;

  return 0;
}
```

**5. Finding the Cartesian Product of Two Vectors**

```cpp
#include <cuchar>
#include <vector>

int main() {
  std::vector<int> v1 = {1, 2, 3};
  std::vector<int> v2 = {2, 4, 6};

  auto cartesian_product = std::cuchar::cartesian_product(v1, v2);
  for (auto it : cartesian_product) {
    std::cout << it.first << ", " << it.second << std::endl;
  }

  return 0;
}
```

**6. Finding the Power Set of a Set**

```cpp
#include <cuchar>
#include <set>

int main() {
  std::set<int> s = {1, 2, 3};

  auto power_set = std::cuchar::power_set(s);
  for (auto it : power_set) {
    std::cout << "{ ";
    for (auto it2 : it) {
      std::cout << it2 << " ";
    }
    std::cout << "}" << std::endl;
  }

  return 0;
}
```

**7. Generating Permutations of a Set**

```cpp
#include <cuchar>
#include <set>

int main() {
  std::set<int> s = {1, 2, 3};

  auto permutations = std::cuchar::permutations(s);
  for (auto it : permutations) {
    std::cout << "{ ";
    for (auto it2 : it) {
      std::cout << it2 << " ";
    }
    std::cout << "}" << std::endl;
  }

  return 0;
}
```

**8. Generating Combinations of a Set**

```cpp
#include <cuchar>
#include <set>

int main() {
  std::set<int> s = {1, 2, 3};

  auto combinations = std::cuchar::combinations(s, 2);
  for (auto it : combinations) {
    std::cout << "{ ";
    for (auto it2 : it) {
      std::cout << it2 << " ";
    }
    std::cout << "}" << std::endl;
  }

  return 0;
}
```

**9. Finding the Most Frequent Element in a Vector**

```cpp
#include <cuchar>
#include <vector>

int main() {
  std::vector<int> v = {1, 2, 3, 4, 2, 1, 5, 2, 6, 2};

  auto most_frequent = std::cuchar::most_frequent(v);
  std::cout << "Most frequent element: " << most_frequent.first << std::endl;

  return 0;
}
```

**10. Finding the Least Frequent Element in a Vector**

```cpp
#include <cuchar>
#include <vector>

int main() {
  std::vector<int> v = {1, 2, 3, 4, 2, 1, 5, 2, 6, 2};

  auto least_frequent = std::cuchar::least_frequent(v);
  std::cout << "Least frequent element: " << least_frequent.first

```
