#include <iostream>
#include <vector>
using namespace std;

int main(void) {
    vector<int> ve({1,2,3,4,5});
    cout << *ve.begin() <<  " "  << *(ve.end()-1) << endl; //vector begin和end的使用
    // output: 1 5 -->ve.end()指向的是最后一个元素的后一个位置
    
    
    //遍历vector
    //第一种
    for(int i = 0;i<ve.size();i++){
        cout << ve[i] << " "; // 1 2 3 4 5
    }
    cout << endl;
    
    //第二种
    for(vector<int>::iterator i = ve.begin();i!=ve.end();i++) cout << *i << ' ';
    cout << endl;
    
    //第三种
    for(auto i : ve) cout << i << ' ';
    cout << endl;
    
    //第四种
    for(auto i = ve.begin();i!=ve.end();i++) cout << *i << ' ';
    cout << endl;
    
    //输出vecotr中的第一个元素
    cout << ve.front() << " " << *ve.begin()<< " " << ve[0] << endl;
    
    //返回最后一个元素
    cout << ve.back() <<  " " <<  *(ve.end() - 1) << " "  << ve[ve.size()-1] << endl;
    
    
    //往vector的最后一个位置添加一个元素
    ve.push_back(6);
    for(auto i : ve) cout << i << " ";//1 2 3 4 5 6 
    cout << endl;
    //删除最后一个元素
    ve.pop_back();
    for(auto i : ve) cout << i << " "; //1 2 3 4 5 
    cout << endl;
    
    
        // unique去重
    vector<int> a({1,2,3,4,5,6,7,8,8,8,8,9,10,123,12,12,12});
    int m1 = unique(a.begin(),a.end()) - a.begin(); //返回去重后元素的个数
    cout << a.size() << " " <<  m1 << endl; //a.size() 
}