#include<iostream>
using namespace std;
class MySet{
int* m_Set;
int m_Size;
int m_MaxSize;
public:
MySet(){
m_Size=0;
m_MaxSize=100;
m_Set = new int[m_MaxSize];
}
MySet(int* agSet){
int i=0;
m_Size=sizeof(agSet)-2;
m_MaxSize = 100;
m_Set=new int[m_MaxSize];
for(i=0;i<m_Size;i++){
m_Set[i] = agSet[i];
}
}
~MySet(){
if(!m_Set){
delete[] m_Set;
m_Set=NULL;
}
}
int GetSize() {
return m_Size;
}
int GetItem(int agIndex){
return m_Set[agIndex];
}
void AddItem(int agValue){
if(m_Size<m_MaxSize) m_Set[m_Size++]=agValue;
}
void Print(){
cout<<"{ ";
int i;
for(i=0;i<m_Size-1;i++){
cout<<m_Set[i]<<", ";
}
cout<<m_Set[i]<<"}\n";
}
MySet operator^(MySet right);
MySet operator*(MySet right);
};
MySet MySet::operator^(MySet right){
MySet tmp;
for(int i=0;i<GetSize();i++){
for(int j=0;j<right.GetSize();j++){
if(GetItem(i)==right.GetItem(j)){
tmp.AddItem(GetItem(i));
break;
}
}
}
return tmp;
}
MySet MySet::operator*(MySet right){
int flag=0;
MySet tmp;
for(int i=0;i<GetSize()-1;i++){
tmp.AddItem(GetItem(i));
}
for(int j=0;j<right.GetSize()-1;j++){
flag=0;
for(int k=0;k<tmp.GetSize();k++){
if(tmp.GetItem(k)==right.GetItem(j)){
flag=1;
break;
}
}
if(flag==0) tmp.AddItem(right.GetItem(j));
}
return tmp;
}
int main(){
int s1[]{1,3,5,7,9,11};
int s2[]{11,13,7,9,20};
MySet set1(s1),set2(s2);
cout<<"SET1 = {1,3,5,7,9,11}\nSET2 = {11,13,7,9,20}\n";
MySet Inter;
Inter=set1^set2;
cout<<"SET1 ^ SET2 = ";
Inter.Print();
MySet Uni;
Uni=set1*set2;
cout<<"SET1 * SET2 = ";
Uni.Print();
return 0;
}
--------------------------------------------------------------------------
연산자 중복을 이용해 교집합과 합집합을 구하는 연산자를 작성하였다.
댓글 0
번호 | 제목 | 글쓴이 | 최근 수정일 | 조회 수 |
---|---|---|---|---|
공지 | 안내사항 | 관리자 | 2019.12.21 | 159 |
105 | rewind() 함수의 사용에 관하여 | 관리자 | 2024.03.13 | 101 |
104 | 일반화 함수의 사용3 | 관리자 | 2019.03.01 | 158 |
103 | 일반화 함수의 사용2 | 관리자 | 2019.02.28 | 158 |
102 | 일반화 함수 사용 | 관리자 | 2019.02.28 | 153 |
101 | 순수가상함수 사용 계산기 | 관리자 | 2019.02.27 | 210 |
100 | 순수가상함수 사용한 여러 도형의 넓이 구하기 | 관리자 | 2019.02.27 | 191 |
99 | 순수 가상함수 | 관리자 | 2019.02.27 | 157 |
98 | 가상소멸자 | 관리자 | 2019.02.27 | 146 |
97 | 가상함수 사용3 | 관리자 | 2019.02.27 | 152 |
96 | 가상함수의 사용2 | 관리자 | 2019.02.26 | 165 |
95 | 가상함수 사용1 | 관리자 | 2019.02.26 | 152 |
94 | 사각형정보 입력받아 파일에 출력하기 | 관리자 | 2019.02.26 | 205 |
93 | 파일 복사 | 관리자 | 2019.02.26 | 156 |
92 | 파일 출력 | 관리자 | 2019.02.26 | 151 |
91 | 조작자 생성2 | 관리자 | 2019.02.26 | 149 |
90 | 조작자 생성1 | 관리자 | 2019.02.25 | 151 |
89 | 입출력연산자 중복 | 관리자 | 2019.02.25 | 149 |
88 | 일반 출력설정 | 관리자 | 2019.02.25 | 151 |
87 | 조작자를 통한 출력 설정 | 관리자 | 2019.02.25 | 162 |
86 | 연산자 중복 - 차집합구하기 | 관리자 | 2019.02.25 | 276 |
» | 연산자 중복-교집합과 합집합 구하기 | 관리자 | 2019.02.25 | 194 |
84 | 연산자 중복-스트림연산자 | 관리자 | 2019.02.21 | 150 |
83 | 연산자 중복-치환연산자 | 관리자 | 2019.02.20 | 289 |
82 | 연산자 중복-friend함수 사용 | 관리자 | 2019.02.20 | 154 |
81 | 연산자 중복-단항연산자 | 관리자 | 2019.02.20 | 205 |
80 | 연산자 중복-관계연산자 | 관리자 | 2019.02.20 | 149 |
79 | 연산자 중복-이항연산자 | 관리자 | 2019.02.20 | 175 |
78 | 함수 중복 이용한 숫자 차 계산 | 관리자 | 2019.02.19 | 159 |
77 | 함수 포인터와 함수 중복 | 관리자 | 2019.02.19 | 199 |