/
Leonid174
/
susu_cpp_kr5
Обзор
Документация
Войти
/
Leonid174
/
susu_cpp_kr5
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Set.cpp
130 строк
3 KB
Leonid174
init commit
13 май 2026, 19:54
Верифицирован
13 май 2026, 19:54
4de3722
Код
Авторство
О чём код?
#include "Set.h" #include <iostream> Set::Set() { size = 0; data = nullptr; } Set::Set(const Set& other) { size = other.size; if (size > 0) { data = new int[size]; for (int i = 0; i < size; i++) { data[i] = other.data[i]; } } else { data = nullptr; } } Set::~Set() { delete[] data; } Set& Set::operator=(const Set& other) { if (this == &other) { return *this; } delete[] data; size = other.size; if (size > 0) { data = new int[size]; for (int i = 0; i < size; i++) { data[i] = other.data[i]; } } else { data = nullptr; } return *this; } void Set::addElement(int value) { if (isElementInSet(value)) { return; } int* newData = new int[size + 1]; for (int i = 0; i < size; i++) { newData[i] = data[i]; } newData[size] = value; delete[] data; data = newData; size++; } bool Set::isElementInSet(int value) const { for (int i = 0; i < size; i++) { if (data[i] == value) { return true; } } return false; } void Set::removeElement(int value) { int index = -1; for (int i = 0; i < size; i++) { if (data[i] == value) { index = i; break; } } if (index == -1) { return; } int* newData = nullptr; if (size - 1 > 0) { newData = new int[size - 1]; for (int i = 0; i < index; i++) { newData[i] = data[i]; } for (int i = index + 1; i < size; i++) { newData[i - 1] = data[i]; } } delete[] data; data = newData; size--; } int Set::getSize() const { return size; } void Set::printSet() const { std::cout << "{"; for (int i = 0; i < size; i++) { std::cout << data[i]; if (i < size - 1) { std::cout << ", "; } } std::cout << "}" << std::endl; } Set Set::operator+(int item) const { Set result(*this); result.addElement(item); return result; } Set Set::operator+(const Set& other) const { Set result(*this); for (int i = 0; i < other.size; i++) { result.addElement(other.data[i]); } return result; } Set Set::operator*(const Set& other) const { Set result; for (int i = 0; i < size; i++) { if (other.isElementInSet(data[i])) { result.addElement(data[i]); } } return result; }