vector容器

5 篇文章 0 订阅
0 篇文章 0 订阅
vecyor容器:
vector是c++标准模板库(STL)中的部分内容。之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说:vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
头文件:#incldue<vector> ; vector属于std命名域的内容,因此需要通过命名限定:using std::vector;也可以直接使用全局的命名空间方式:using namespace std;
另外,它的元素类型可以是int,double,char等简单类型,也可以是结构体或string基本字符序列容器,使用起来非常灵活。


vector成员函数:


1.push_back(number)在尾部插入一个number数据: 
vector<int> v;
v.push_back(1);



2.insert(v.begin+n,4)在n位置上插入4:
vector<int> v;
v.insert(v.begin()+1,4);



3.pop_back()删除末尾的数据:
vector<int> v;
v.pop_back();



4.erase(v.begin()+n,v.begin()+m)删除迭代器第1到第5区间的所有元素:
vector<int> v;
v.erase(v.begin()+1,v.begin()+5);
v.erase(v.begin()+2)///删除两个元素,从0开始计数



5.clear()一次性删除vector中的所有元素:
vector<int> v;
v.clear();



6.begin()返回指向第一个数据的迭代器,
  end()返回指向最后一个数据之后的迭代器:
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
vector<int>::iterator it;
for(it = v.begin();it!=v.end();it++)
    printf("%d ",*it);



7.reverse反向排列算法,可将向量中某段迭代器区间反响排列:
  (需要定义头文件“#include<algorithm>”)
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
reverse(v.begin(),v.end());
vector<int>::iterator it;
for(it = v.begin();it!=v.end();it++)
    printf("%d ",*it);



8.使用sort算法对向量元素排序:
  (需要定义头文件“#include<algorithm>”)
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
sort(v.begin(),v.end());
vector<int>::iterator it;
for(it = v.begin();it!=v.end();it++)
    printf("%d ",*it);



  还可以自己设计排序比较函数:
bool Comp(const int&a,const int &b)
{
    if(a!=b)return a>b;
    else return a>b;
}
sort(v.begin(),v.end(),Comp);



9.empty()判断容器是否为空:
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
if(!v.empty())
    printf("v is not empty!\n");



10.size()返回容器中实际数据的个数:
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
printf("%d\n",v.size());


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值