0
点赞
收藏
分享

微信扫一扫

vector 简单应用


                                                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) 其中的“&”绝对不能少!!!

 例题链接

 

举报

相关推荐

0 条评论