fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Bai4 {
  5. private:
  6. int* arr;
  7. int sl;
  8. bool TonTai(int x) const {
  9. for (int i = 0; i < sl; i++) {
  10. if (arr[i] == x) return true;
  11. }
  12. return false;
  13. }
  14.  
  15. public:
  16. ~Bai4() {
  17. delete[] arr;
  18. arr = nullptr;
  19. sl = 0;
  20. }
  21. Bai4(int s = 0) {
  22. sl = s;
  23. arr = (sl > 0) ? new int[sl] : nullptr;
  24. }
  25. Bai4(const Bai4 &other) {
  26. sl = other.sl;
  27. arr = new int[sl];
  28. for (int i = 0; i < sl; i++) {
  29. arr[i] = other.arr[i];
  30. }
  31. }
  32. Bai4& operator=(const Bai4 &other) {
  33. if (this != &other) {
  34. delete[] arr;
  35. sl = other.sl;
  36. arr = new int[sl];
  37. for (int i = 0; i < sl; i++) {
  38. arr[i] = other.arr[i];
  39. }
  40. }
  41. return *this;
  42. }
  43. void Nhap() {
  44. delete[] arr;
  45. int n;
  46. cin >> n;
  47. arr = new int[n];
  48. sl = 0;
  49. for (int i = 0; i < n; i++) {
  50. int val;
  51. cin >> val;
  52. if (!TonTai(val)) {
  53. arr[sl++] = val;
  54. }
  55. }
  56. }
  57. void Xuat() const {
  58. cout << "{ ";
  59. for (int i = 0; i < sl; i++) {
  60. cout << arr[i] << " ";
  61. }
  62. cout << "}\n";
  63. }
  64. void ThemPhanTu(int x) {
  65. if (TonTai(x)) return;
  66. int* temp = new int[sl + 1];
  67. for (int i = 0; i < sl; i++) {
  68. temp[i] = arr[i];
  69. }
  70. temp[sl] = x;
  71. delete[] arr;
  72. arr = temp;
  73. sl++;
  74. }
  75. void XoaPhanTu(int x) {
  76. int pos = -1;
  77. for (int i = 0; i < sl; i++) {
  78. if (arr[i] == x) {
  79. pos = i;
  80. break;
  81. }
  82. }
  83. if (pos == -1) return;
  84. int* temp = new int[sl - 1];
  85. for (int i = 0, j = 0; i < sl; i++) {
  86. if (i == pos) continue;
  87. temp[j++] = arr[i];
  88. }
  89. delete[] arr;
  90. arr = temp;
  91. sl--;
  92. }
  93. void Hop(const Bai4 &a) {
  94. Bai4 kq = *this;
  95. for (int i = 0; i < a.sl; i++) {
  96. if (!kq.TonTai(a.arr[i])) {
  97. kq.ThemPhanTu(a.arr[i]);
  98. }
  99. }
  100. cout << "Ket qua Hop: ";
  101. kq.Xuat();
  102. }
  103. void Giao(const Bai4 &a) {
  104. Bai4 kq;
  105. for (int i = 0; i < sl; i++) {
  106. if (a.TonTai(arr[i])) {
  107. kq.ThemPhanTu(arr[i]);
  108. }
  109. }
  110. cout << "Ket qua Giao: ";
  111. kq.Xuat();
  112. }
  113. void Tru(const Bai4 &a) {
  114. Bai4 kq;
  115. for (int i = 0; i < sl; i++) {
  116. if (!a.TonTai(arr[i])) {
  117. kq.ThemPhanTu(arr[i]);
  118. }
  119. }
  120. cout << "Ket qua Tru (A \\ B): ";
  121. kq.Xuat();
  122. }
  123. };
  124.  
  125. int main() {
  126. Bai4 A, B;
  127. A.Nhap();
  128. B.Nhap();
  129. A.Xuat();
  130. B.Xuat();
  131. A.Hop(B);
  132. A.Giao(B);
  133. A.Tru(B);
  134. return 0;
  135. }
  136.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
{ 0 }
{ 0 }
Ket qua Hop: { 0 }
Ket qua Giao: { 0 }
Ket qua Tru (A \ B): { }