set method in C++

* create
```
#include <set>
using namespace std;

struct classComp {
  bool operator() (int l, int r) { return l<r; }
};
bool funComp(int l, int r) { return l<r; }

int main () {
    set<int> a;  // default constructor
    set<int> b(a);  // copy constructor
    set<int> c(move(a));  // move constructor
    set<int> d{1,2,3};  // initializer list constructor
    // set has no fill constructor
    set<int> f(a.begin(),a.end());  // range constructor

    set<int>* g = new set<int>{1,2,3};  // new operator
    delete g;

    set<int,classComp> mc;
    set<int,decltype(&funComp)> mf(&funComp); 
}
```
* iterator
```
#include <iostream>
#include <set>
using namespace std;

int main (){
  set<int> s{1,2,3,4,5,1};

  for (auto it=s.begin(); it!=s.end(); ++it)
    cout<<*it<<",";
  cout<<endl;
  for (auto it=s.cbegin(); it!=s.cend(); ++it)
    cout<<*it<<",";
  cout<<endl;
  for (auto it=s.rbegin(); it!=s.rend(); ++it)
    cout<<*it<<",";
  cout<<endl;
  for (auto it=s.crbegin(); it!=s.crend(); ++it)
    cout<<*it<<",";
  cout<<endl;
}
/*
1,2,3,4,5,
1,2,3,4,5,
5,4,3,2,1,
5,4,3,2,1,
*/
```
* add
```
#include <iostream>
#include <set>
using namespace std;

int main ()
{
    set<int> s;

    s.insert(1);
    s.emplace(3);
    
    for(auto &i:s)
        cout<<i<<",";
    cout<<endl;
}
// 1,3,
```
* change
```
#include <iostream>
#include <set>
using namespace std;

void p(set<int>& a) {
    for(auto &i:a) cout<<i<<";";
    cout<<endl;
}

int main ()
{
    set<int> a{1,2,3,4,5};
    set<int> a1(a), a2(a);

    a.swap(a1);
    p(a);
}
```
* query
```
#include <iostream>
#include <set>
using namespace std;

int main() {
    set<int> s{1,2,3,4,5,6};

    auto it=s.find(2);
    if(it!=s.end()) cout<<"found"<<endl;
    cout<<s.count(2)<<endl;
    
    auto itl = s.lower_bound(3);
    it=s.begin();
    while(it!=itl){
        cout<<*it++<<",";
    }
    cout<<endl;

    it=s.upper_bound(3);
    while(it!=s.end()) {
        cout<<*it++<<",";
    } 
    cout<<endl;

    auto r=s.equal_range(3);
    for(auto it=r.first; it!=r.second; it++)
        cout<<*it<<",";
    cout<<endl;
    
    cout<<s.empty()<<endl;
    cout<<s.size()<<endl;
    cout<<s.max_size()<<endl;
}
/*
found
1
1,2,
4,5,6,
3,
0
6
230584300921369395
*/
```
* delete 
```
#include <set>
using namespace std;

int main () {
    set<int> s{1,2,3,4,5};

    s.erase(s.begin());
    s.erase(4);
    s.clear();
}
```