vector method in C++

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

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

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

int main() {
    vector<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 <vector>
#include <iostream>
using namespace std;

struct Foo
{
    Foo(int n, double x) {}
};

int main() {
    vector<int> v{1,2,3,4,5};
    v.push_back(1);
    v.insert(v.begin()+2,4);
    
    for(auto &i:v) 
        cout<<i<<",";
    cout<<endl;

    std::vector<Foo> f;
    f.emplace(f.begin(), 42, 3.1416);
    f.insert(f.begin(), Foo(42, 3.1416));
}
```
* change
```
#include <vector>
#include <iostream>
using namespace std;

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

int main() {
    vector<int> v{};
    vector<int> w{1,2,3,4,5};

    v.assign(10, 11); 
    v[2]=3;
    v.swap(w);

    v.resize(30);  // size will be 30
    v.reserve(50);  // capacity will be 50
    v.shrink_to_fit();  // capacity will be 30
    cout<<v.capacity();
}
```
* query
```
#include <vector>
#include <iostream>
using namespace std;

int main() {
    vector<int> v{1,2,3,4,5};

    cout<<v[1]<<","<<v.at(1)<<","<<*v.data()+1<<endl;
    cout<<v.front()<<","<<v.back()<<","<<v.size()<<","
        <<v.max_size()<<","<<v.capacity()<<","<<v.empty()<<endl;
}
```
* delete
```
#include <vector>
using namespace std;

int main() {
    vector<int> v{1,2,3,4,5};

    v.pop_back();
    v.erase(v.begin()+2);
    v.clear();
}
```