模板类vector是一个动态数组,类似于string类,可存放任意类型,能够末尾、中间增加数据,基本上是是new创建动态数组的替代品,vector可以自动完成new和delete。
头文件
#include <vector>
vector包含在名称空间std中
using namespace std;
使用不同的语法指出它存储的数据类型
vector <int> nums; //创建一个空整型数组
使用不同的语法指定元素数
vector <int> nums[n]; //创建一个大小为n的整型数组(n可以是变量也可以是常量)
vector <int> nums(n, 1); //设置arr大小为n,将数组中所有元素初始化为1
Vector作为函数的参数或者返回值时,需要注意它的写法:
double Distance(vector<int>&a, vector<int>&b) 其中的“&”绝对不能少
添加元素
nums.push_back(1);//直接从数组末端添加
nums[i] = 1;//直接赋值给第i个位置
删除元素
nums.resize(nums.size-i); //直接将数组长度减小,某种方式上删掉了后面i个
nums.pop_back();//删掉最后一个元素
获得长度
nums.size()
重设数组长度
nums.resize();
排序(O(nlogn))
sort(nums.begin(),nums.end());
翻转
reverse(nums.begin(), nums.end());
数组中所有元素求和
accumulate(nums.begin(), nums.end(), n); //n是求和的初值
合并两个vector:合并nums1和nums2,并将合并后的赋值数组给nums
vector<int> nums1(m),nums2(n);
vector<int> nums;
nums.resize(m+n);
merge(nums1.begin(), nums1.end(),nums2.begin(),nums2.end(),nums);