📄 setclass.cpp
字号:
//globe.cpp
#include "StdAfx.h"
#include "SetClass.h"
#include "stdio.h"
////////////////////////////Set set set ////////////////////////////////////////////////////////////////
Set::Set()
{
pElement=NULL;
Card=0;
}
Set::Set(int card)
{
Card=card;
pElement=new int[card];
}
Set::~Set()
{
delete pElement;
}
Set::Set(int* pelement,int card)
{
Card=card;
pElement=new int[card];
for(int i=0;i<card;i++){
pElement[i]=pelement[i];
}
}
////////////////////////////////////////////////////
void Set::SetParameter(int* pelement,int card)
{
Card=card;
pElement=new int[card];
for(int i=0;i<card;i++){
pElement[i]=pelement[i];
}
}
int Set::GetElement(int n)
{
return pElement [n];
}
int Set::GetCard()
{
return Card;
}
////////////////////////////////////////////////////////////////////////////////
Set& Set::operator -(Set& other)
{
int i,j,k;
bool add;
int thisCard=Card;
k=0;
Card=Card -other.Card ;
for(i=0;i<thisCard;i++){
add=true;
for(j=0;j<other.Card ;j++){
if(other.pElement [j]==pElement [i]){
add=false;
}
}
if(add){
pElement [k]=pElement [i];
k++;
}
}
return *this;
}
//////////////////////////////////////////////////////////////////////////
Set& Set:: operator = (Set& other)
{
int i;
Card=other.Card ;
delete[] pElement;
pElement= new int[Card];
for(i=0;i<Card;i++){
pElement[i]=other.pElement[i] ;
}
return *this;
}
///////////////////////////////////////////
Set& Set:: operator +(Set& other)
{
int i,j,k;
bool add=true;
int card=Card ;
Set thisSet(card);
for(i=0;i<card;i++){
thisSet.pElement [i]=pElement[i];
}
Card=Card+other.Card ;
for(i=0;i<other.Card ;i++){
for(j=0;j<thisSet.Card ;j++){
if(thisSet.pElement [j]==other.pElement [i]){
Card--;
}
}
}
k=0;
delete pElement;
pElement=new int[Card];
for(i=0;i<thisSet.Card ;i++){
pElement [i]=thisSet.pElement [i];
}
for(i=0;i<other.Card;i++){
add=true;
for(j=0;j<thisSet.Card ;j++){
if(thisSet.pElement [j]==other.pElement [i]){
add=false;
}
}
if(add){
pElement [k+thisSet.Card ]=other.pElement [i];
k++;
}
}
return *this;
}
//////////////////////////////Set set set ////////////////////////////////////////////////////////////////////////////////////////
////////////////////////Set Less Set/////////////////////////////////////////////////////////////////////////////////////////////////////////
bool Set::SetLessSet(Set& set1,Set& set2)
{
int i,j;
int Same=0;
if(set1.GetCard ()>set2.GetCard ()){
return false;
}
for(i=0;i<set1.GetCard ();i++){
for(j=0;j<set2.GetCard ();j++){
if(set2.GetElement (j)==set1.GetElement (i)){
Same++;
}
}
}
if(Same==set1.GetCard ()){
return true;
}
return false;
}
//////////////////////// set == set //////////////////////////////////////////////////////////////////////////////////////////
bool Set::SetEqualSet(Set& set1,Set& set2)
{
int i;
if(set1.GetCard ()!=set2.GetCard ()){
return false;
}
else{
for(i=0;i<set1.GetCard ();i++){
if(set1.GetElement (i)!=set2.GetElement (i)){
return false;
}
}
}
return true;
}
////////////////SetandSet//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Set::SetandSet(Set& Result,Set& set1,Set& set2)
{
int i,j;
int Card=0;
int MinCard=set1.GetCard ();
int* pEle;
if(set2.GetCard ()<MinCard){
MinCard=set2.GetCard ();
}
pEle=new int[MinCard];
for(i=0;i<set1.GetCard ();i++){
for(j=0;j<set2.GetCard ();j++){
if(set2.GetElement (j)==set1.GetElement (i)){
pEle[Card]=set1.GetElement (i);
Card++;
break;
}
}
}
Result.SetParameter(pEle,Card);
delete[] pEle;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -