Vector 简单应用
定义:
vector是C++标准模板库中的部分内容,中文偶尔译作"容器",但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
简单来说:简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
头文件: #include <vector>
定义:vector <data_type> vector_name;
如:vector <int> v;
操作:
v.empty()-- 返回bool型,表示vector是否为空(v.empty() )
v.size()-- 返回vector内元素个数 (v.size() )
v.push_back(data_typea) 将元素a插入最尾端
v.pop_back() 将最尾端元素删除
vec.clear() 清空
vec.insert(vec.begin()+i,a)在第i+1个元素前面插入a;
vec.erase(vec.begin()+2); 删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j) 删除区间[i,j-1];区间从0开始
v[i] 类似数组取第i个位置的元素(v[0])
算法:
(1) 使用reverse将元素翻转:需要头文件#include<algorithm>
reverse(vec.begin(),vec.end());将元素翻转,即逆序排列!
(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含)
(2)使用sort排序:需要头文件#include<algorithm>,
sort(vec.begin(),vec.end());(默认是按升序排列,即从小到大).
可以通过重写排序比较函数按照降序比较,如下:
定义排序比较函数:
bool Comp(const int &a,const int &b)
{
return a>b;
}
调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。
特别注意:
使用vector需要注意以下几点:
1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;点击看一下实例(一直超时)
2、Vector作为函数的参数或者返回值时,需要注意它的写法:
double Distance(vector<int>&a, vector<int>&b) 其中的“&”绝对不能少!!!
例题链接
标签:begin,end,元素,vector,vec,应用,简单,排序 From: https://blog.51cto.com/u_14932227/6167903