- 创建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 }