Set (multime)
Fie doua multimi A si B cu elemente intregi cu n si respectiv m elemente.
a) sa se caute un element dat in multimea A
b) sa se afiseze intersectia dintre multimea A si multimea B
c) sa se afiseze reuniunea dintre multimea A si multimea B
d) sa se afiseze A-B
#include<iostream>
#include<set>
using namespace std;
int main()
{
int i,x,n;
set<int> a;
set<int> b;
set<int> c;
cout<<"numarul de elemente pentru multimea a=";cin>>n;
cout<<"elementele multimii a: \n";
for (i=1;i<=n;i++)
{
cin>>x;
a.insert(x);
}
/*cautarea unui element*/
cout<<"dati elementul cautat "; cin>>x;
set<int>::iterator it = a.find(x);
if(it != a.end())
cout<<"elementul exista in multimea a"<<endl;
else
cout<<"elementul nu exista in multimea a"<<endl;
/* elementele multimii a*/
cout<<"elementele multimii a sunt:\n";
for(it=a.begin();it!=a.end();++it)
cout<<*it<<' ';
cout<<'\n';
/* numarul de elemente din multime */
cout<<"numarul de elemente din multimea a="<<a.size()<<'\n';
//pentru multimea b
int m;
set<int>::iterator itb;
set<int>::iterator ita;
cout<<"numarul de elemente pentru multimea b=";cin>>m;
cout<<"elementele multimii b:\n";
for (i=1;i<=m;i++)
{
cin>>x;
b.insert(x);
}
/* elementele multimii b*/
cout<<"elementele multimii b sunt\n";
for(itb=b.begin();itb!=b.end();++itb)
cout<<*itb<<' ';
cout<<'\n';
//intersectia dintre a si b
for(ita=a.begin();ita!=a.end();++ita)
for(itb=b.begin();itb!=b.end();++itb)
if(*ita==*itb) c.insert(*ita);
cout<<"intersectia: ";
for(it=c.begin();it!=c.end();++it) cout<<*it<<' ';
cout<<'\n';
//reuniunea dintre a si b
c.clear();
for(ita=a.begin();ita!=a.end();++ita)c.insert(*ita);
for(itb=b.begin();itb!=b.end();++itb)c.insert(*itb);
cout<<"reuniunea: ";
for(it=c.begin();it!=c.end();++it) cout<<*it<<' ';
//diferenta
c.clear();
for(ita=a.begin();ita!=a.end();++ita)c.insert(*ita);
for(ita=a.begin();ita!=a.end();++ita)
for(itb=b.begin();itb!=b.end();++itb)
if(*ita==*itb) c.erase(*ita);
cout<<"\na-b: ";
for(it=c.begin();it!=c.end();++it) cout<<*it<<' ';
return 0;
}
#include<iostream>
#include<set>
using namespace std;
int main()
{
int i,x,n;
set<int> a;
set<int> b;
set<int> c;
cout<<"numarul de elemente pentru multimea a=";cin>>n;
cout<<"elementele multimii a: \n";
for (i=1;i<=n;i++)
{
cin>>x;
a.insert(x);
}
/*cautarea unui element*/
cout<<"dati elementul cautat "; cin>>x;
set<int>::iterator it = a.find(x);
if(it != a.end())
cout<<"elementul exista in multimea a"<<endl;
else
cout<<"elementul nu exista in multimea a"<<endl;
/* elementele multimii a*/
cout<<"elementele multimii a sunt:\n";
for(it=a.begin();it!=a.end();++it)
cout<<*it<<' ';
cout<<'\n';
/* numarul de elemente din multime */
cout<<"numarul de elemente din multimea a="<<a.size()<<'\n';
//pentru multimea b
int m;
set<int>::iterator itb;
set<int>::iterator ita;
cout<<"numarul de elemente pentru multimea b=";cin>>m;
cout<<"elementele multimii b:\n";
for (i=1;i<=m;i++)
{
cin>>x;
b.insert(x);
}
/* elementele multimii b*/
cout<<"elementele multimii b sunt\n";
for(itb=b.begin();itb!=b.end();++itb)
cout<<*itb<<' ';
cout<<'\n';
//intersectia dintre a si b
for(ita=a.begin();ita!=a.end();++ita)
for(itb=b.begin();itb!=b.end();++itb)
if(*ita==*itb) c.insert(*ita);
cout<<"intersectia: ";
for(it=c.begin();it!=c.end();++it) cout<<*it<<' ';
cout<<'\n';
//reuniunea dintre a si b
c.clear();
for(ita=a.begin();ita!=a.end();++ita)c.insert(*ita);
for(itb=b.begin();itb!=b.end();++itb)c.insert(*itb);
cout<<"reuniunea: ";
for(it=c.begin();it!=c.end();++it) cout<<*it<<' ';
//diferenta
c.clear();
for(ita=a.begin();ita!=a.end();++ita)c.insert(*ita);
for(ita=a.begin();ita!=a.end();++ita)
for(itb=b.begin();itb!=b.end();++itb)
if(*ita==*itb) c.erase(*ita);
cout<<"\na-b: ";
for(it=c.begin();it!=c.end();++it) cout<<*it<<' ';
return 0;
}