STL容器---vector容器的使用

 一:vector是C++标准模版库(STL,Standard Template Library)中的部分内容。之所以认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单的说:vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

使用vector容器之前必须加上<vector>头文件:#include<vector>;

vector属于std命名域的内容,因此需要通过命名限定:using std::vector;也可以直接使用全局的命名空间方式:using namespace std;

二:常用的成员函数:

申明 vector<int> v;

c.push_back(elem)在尾部插入一个elem数据。

vector<int> v;
    v.push_back(1);

c.pop_back()删除末尾的数据。

 vector<int> v;
    v.pop_back();

c.assign(beg,end)将[beg,end)一个左闭右开区间的数据赋值给c。

vector<int> v1,v2;
v1.push_back(10);
v1.push_back(20);
v2.push_back(30);
v2.assign(v1.begin(),v1.end());

c.assign (n,elem)将n个elem的拷贝赋值给c。

vector<int> v;

v.assign(5,10);//往v里放5个10

c.at(int index)传回索引为index的数据,如果index越界,抛出out_of_range异常。

vecto<int> v;
cout << v.at(2) << endl;//打印vector中下标是2的数据

v.begin()返回指向第一个数据的迭代器。

v.end()返回指向最后一个数据之后的迭代器。

v.capacty() 容器的容量

v.size() 容器的大小

v.empty() 判断容器是否为空

sort(v.begin(),v.end()) 对v容器内的元素进行排序

定义一个迭代器:vector<int>::iterator it;

erase (const_iterator start, const_iterator end);//删除迭代器从 start 到end 之间的元素
erase(const_iterator pos) : //删除迭代器指向的元素
clear(); //删除容器中所有元素


巧用 swap 收缩内存空间
 

vector<int> v1:
v1. reserve (1000) ;
v1.push_back (10) ;
v1.push_back (20) ;
v1.push_back (30) ;
v1.push_back (40) ;
cout<<"*: "<<v1. capacity0<<", th:"<<v1.size()<<endl;//1000
//res ize只能修改大小 不能修改容量
//v1.resize(4);
vector<int>(v1) .swap(v1) ;
cout<<"*lit: "<<v1. capacityO<c", Nd: "«evl.size()<<endl; //4 4

很多时候大量的删除数据,或者通过使用reserver(),结果vector的空间远远大于实际的需要。所以需要压缩vector到它的实际大小。resize()能增加vector的大小。clear()仅仅移除容器内的数据,不能改变capacity()的大小,所以对vector进行压缩非常重要。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值