list method in C++

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

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

    list<int>* g = new list<int>{1,2,3};  // new operator
    delete g;
}
```
* iterator
```
#include <iostream>
#include <list>
using namespace std;

int main() {
    list<int>c{1,2,3,4,5,1};

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

int main ()
{
    list<int> l;

    l.push_front(1);
    l.push_back(2);

    auto it = l.begin();
    l.emplace(it, 3);
    l.insert(it, 4);

    for (auto &i:l)
        cout<<i<<",";
    cout<<endl;
}
//3,4,1,2
```
* change
```
#include <iostream>
#include <list>
using namespace std;

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

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

    *a.begin()=2; //2;2;3;4;5;
    a.front()=3; //3;2;3;4;5;
    a.back()=4; //3;2;3;4;4;

    a.assign(3, 5); //5;5;5;
    a.swap(a1); //a:1;2;3;4;5; a1:5;5;5;
    a.splice(a.begin(), a2); //a:1;2;3;4;5;1;2;3;4;5; a2:null

    a.reverse(); //5;4;3;2;1;5;4;3;2;1;
    a.sort(); //1;1;2;2;3;3;4;4;5;5;
    a1.sort(); //5;5;5;
    a.merge(a1); //a:1;1;2;2;3;3;4;4;5;5;5;5;5; a1:null
    a.unique();
    //p(a);
}
```
* query
```
#include <iostream>
#include <list>
using namespace std;

int main() {
    list<int> a{};
    a.assign(10, 1);

    cout<<a.front()<<","<<a.back()<<endl;
    cout<<a.size()<<","<<a.max_size()<<","<<a.empty()<<endl;    
}
```
* delete
```
#include <iostream>
#include <list>
using namespace std;

int main() {
    list<int> a{};
    a.assign(10, 1);

    a.pop_front();
    a.pop_back();
    a.erase(a.begin());
    a.clear();
    cout<<a.empty()<<endl;    
}
```