2.vector数组

  • 创建vector数组
    1 vector<int> myint{ 1,2,3,4,5 };

     

  • 尾部插入
    1 for (int i = 10; i < 20; i++)
    2 {
    3     myint.push_back(i);
    4     
    5 }

     

  • 读取头部和尾部
    1 cout << myint.front() << endl;
    2 cout << myint.back() << endl;

     

  • 动态调整大小
    1 myint.resize(5);//动态调整大小

     

  • 设置只有六个数据但是缓冲区有90
    myint.resize(6, 90);//设置只有六个数据,但是缓冲有90

     

  • 正向读取
    1 for (auto ib = myint.begin(), ie = myint.end(); ib != ie; ib++)
    2 {
    3     cout << *ib << endl;
    4 }

     

  • 逆向读取
    1 for (auto rb = myint.rbegin(), re = myint.rend(); rb != re; rb++)
    2 {
    3     cout << *rb << endl;
    4 }

     

  • 读取
    1 for (int i = 0; i < myint.size(); i++)
    2 {
    3     cout << myint[i] << endl;
    4 }
    5 
    6 for (auto i : myint)
    7 {
    8     cout << i << endl;
    9 }

     

  • 重新初始化
    1 myint.assign(7, 100);

     

  • 根据位置插入
    1 auto it = myint.begin() + 3;
    2 myint.insert(it, 400);//根据位置插入

     

  • 插入一个数组
    1 int a[5] = { 1,2,3,4,5 };
    2 myint.insert(it, a, a + 5);//插入一个数组

     

  • 插入一个vector
    1 vector<int> myintX = { 11,12,13 };
    2 //批量插入
    3 myint.insert(it, myintX.begin(), myintX.end());

     

  • 删除和批量删除
    1 myint.erase(it);
    2 myint.erase(myint.begin(), myint.begin() + 3);//批量删除

     

  • 调用分配器使用自己分配的内存
    1 //调用分配器
    2 vector<int> mymem;
    3 int *p = mymem.get_allocator().allocate(5);//获取分配器分配内存
    4 for (int i = 0; i < 5; i++)
    5 {
    6     cout << (p[i] = i) << endl;
    7 }
    8 myint.get_allocator().deallocate(p, 5);//释放内存

     

  • vector嵌套
     1   //vector嵌套
     2     vector<int> myint1{ 1,23,4 };
     3     vector<int> myint2{ 1,23,4 };
     4     vector<int> myint3{ 1,23,4 };
     5     vector<vector<int>> myallint{ myint1,myint2,myint3 };
     6     for (auto i : myallint)
     7     {
     8         for (auto j : i)
     9         {
    10             cout << j << endl;
    11         }
    12     }

     

posted @ 2018-03-12 14:51  喵小喵~  阅读(290)  评论(0编辑  收藏  举报