VECTOR:(函数部分)
Plus.front() 返回第一个数据
Plus.pop_back() 删除最后一个数据 O(1)
Plus.push_back(element) 在尾部加一个数据 O(1)
Plus.size() 返回实际数据个数(unsigned类型) O(1)
Plus.clear() 清除元素个数 O(N), N为元素个数
Plus.resize(n, v) 改变数组大小为n, n个空间数值赋为v,如果没有默认赋值为0
Plus.insert(it, x) 向任意迭代器it插入一个元素x O(N)
Plus.erase(first, last) 删除[first, last)的所有元素
Plus.begin() 返回首元素的迭代器(通俗来说就是地址)
Plus.end() 返回最后一个元素后一个位置的迭代器(地址)
Plus.empty() 判断数组是否为空,为空则返回true
Plus.sort(c.begin(),c.end())
vector是一种可以改变大小的动态数组,定义的vector数组可以随时添加数值和删除元素。
头文件#include<vector>
一.初始化 (一维 二维)
1.一维
vector<int> vec; //默认长度为0;
vector<int> vec1 = { 1 };
vector<char> vec2 = { 1,'a'};
vector<int> vect = vec1; //相当于 vector<int> vect(vec1);
vector<int> a(5, 1); //指定长度为5 所有元素为1;
vector<int> a(6); //指定长度为6 所有元素初始值默认0
2.二维
vector<vector<int>> vec3; //行列都可变的二维数组
vector<vector<int>> vec4 = { {1,2},{2,3} };
vector<int>num[5]; //5行n列的二维数组 列数不定
二.访问方式
1.数组下标访问
for (int i = 0; i < vec2.size(); i++)
cout << vec2[i];
2.通过迭代器访问 通常可以理解成指针变量
vector<int>::iterator it;
for (it=vec1.begin(); it != vec1.end(); it++)
cout << *it<<" ";
vector<int>::iterator it=vec.begin();
for(int i=0;i<vec.size();i++)
cout<<*(it+i)<<" ";
3.智能指针 只能访问
for (auto v : vec2)
cout << v<<" ";
三.遍历方式
1.一维
vector<int>::iterator it1;
vector<int>::iterator it2=vec1.begin();
for (it1=vec1.begin(); it1 != vec1.end(); it1++)
cout << *it1<<" ";
for (int i = 0; i < vec1.size(); i++)
cout << vec2[i];
for (auto x : vec1)
cout << x<<" ";
for(int i=0;i<vec1.size();i++)
cout<<*(it2+i)<<" ";
2.二维
vector<vector<int>>::iterator it;
for (it = vec4.begin(); it != vec4.end(); it++)
for (int i = 0; i < vec4.size(); i++)
cout <<(*it)[i]<<" ";
cout << endl;