#include <iostream>
#include <set>
#include <iterator>
using namespace std;
int main()
{
// empty set container
set <int, greater <int> > set1;
// insert elements in random order
set1.insert(40);
set1.insert(30);
set1.insert(60);
set1.insert(20);
set1.insert(50);
set1.insert(50); // only one 50 will be added to the set
set1.insert(10);
// printing set set1
set <int, less <int> > :: iterator itr;
cout << "\nThe set set1 is : ";
for (itr = set1.begin(); itr != set1.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
// assigning the elements from set1 to set2
set <int> set2(set1.begin(), set1.end());
// print all elements of the set set2
cout << "\nThe set2 after assign from set1 is : ";
for (itr = set2.begin(); itr != set2.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
// remove all elements up to 30 in set2
cout << "\nset2 after removal of elements less than 30 : ";
set2.erase(set2.begin(), set2.find(30));
for (itr = set2.begin(); itr != set2.end(); ++itr)
{
cout << '\t' << *itr;
}
// remove all elements with value 50 in set2
int num;
num = set2.erase (50);
cout << "\nset2.erase(50) : ";
cout << num << " removed \t" ;
for (itr = set2.begin(); itr != set2.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
//lower bound and upper bound for set set1
cout << "set1.lower_bound(40) : "
<< *set1.lower_bound(40) << endl;
cout << "set1.upper_bound(40) : "
<< *set1.upper_bound(40) << endl;
//lower bound and upper bound for set set2
cout << "set2.lower_bound(40) : "
<< *set2.lower_bound(40) << endl;
cout << "set2.upper_bound(40) : "
<< *set2.upper_bound(40) << endl;
return 0;
}
#include <set>
#include <iterator>
using namespace std;
int main()
{
// empty set container
set <int, greater <int> > set1;
// insert elements in random order
set1.insert(40);
set1.insert(30);
set1.insert(60);
set1.insert(20);
set1.insert(50);
set1.insert(50); // only one 50 will be added to the set
set1.insert(10);
// printing set set1
set <int, less <int> > :: iterator itr;
cout << "\nThe set set1 is : ";
for (itr = set1.begin(); itr != set1.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
// assigning the elements from set1 to set2
set <int> set2(set1.begin(), set1.end());
// print all elements of the set set2
cout << "\nThe set2 after assign from set1 is : ";
for (itr = set2.begin(); itr != set2.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
// remove all elements up to 30 in set2
cout << "\nset2 after removal of elements less than 30 : ";
set2.erase(set2.begin(), set2.find(30));
for (itr = set2.begin(); itr != set2.end(); ++itr)
{
cout << '\t' << *itr;
}
// remove all elements with value 50 in set2
int num;
num = set2.erase (50);
cout << "\nset2.erase(50) : ";
cout << num << " removed \t" ;
for (itr = set2.begin(); itr != set2.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
//lower bound and upper bound for set set1
cout << "set1.lower_bound(40) : "
<< *set1.lower_bound(40) << endl;
cout << "set1.upper_bound(40) : "
<< *set1.upper_bound(40) << endl;
//lower bound and upper bound for set set2
cout << "set2.lower_bound(40) : "
<< *set2.lower_bound(40) << endl;
cout << "set2.upper_bound(40) : "
<< *set2.upper_bound(40) << endl;
return 0;
}