array method in C++

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

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

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

int main() {
    array<int,6>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 (N/A)
* change
```
#include <iostream>
#include <array>
using namespace std;

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

    *a.begin()=2;
    
    a[0]=1;
    a.at(1)=2;
    a.front()=3;
    a.back()=4;
    a.data()[1]=5;
    
    a.fill(1);
    a.swap(a1);
    
    for (auto &i:a)
        cout<<i<<";";
    cout<<endl;
}
```
* query
```
#include <iostream>
#include <array>
using namespace std;

int main() {
    array<int, 10> a{};
    a.fill(1);

    cout<<a[2]<<","<<a.at(3)<<","<<get<4>(a)<<","<<a.data()[1]<<endl;
    cout<<a.front()<<","<<a.back()<<endl;
    cout<<a.size()<<","<<a.max_size()<<","<<a.empty()<<endl;    
}
```
* delete (N/A)