C++——之vector的用法

vector的用法

作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。

特别注意:
使用vector需要注意以下几点:
1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;
2、vector作为函数的参数或者返回值时,需要注意它的写法:
double Distance(vector< int >&a, vector< int >&b) 其中的“&”绝对不能少!!!

文件包含:

#include< vector >以包含所需要的类文件vector
using namespace std;

变量声明:

例1:声明一个int向量以替代一维的数组:vector < int >a;
(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。
例2:用vector代替二维数组.
其实只要声明一个一维数组向量即可,而一个数组的名字其实代表的是它的首地址,所以只要声明一个地址的向量即可,即:vector < int * > a.同理想用向量代替三维数组也是一样,vector < int >a**;再往上面依此类推.

具体的用法以及函数调用

vector<int> vec;//创建vector对象
vec.push_back(a);//尾部插入a
cout<<vec[0]<<endl;//使用下标访问元素,(记住下标是从0开始的)

//使用迭代器访问元素.
    vector<int>::iterator it;
           for(it=vec.begin();it!=vec.end();it++)
            cout<<*it<<endl;
            
 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开始
 vec.size();//向量大小: 
 vec.clear();//清空:       

1.push_back() 在数组的最后添加一个数据
2.pop_back() 去掉数组的最后一个数据
3. at() 得到编号位置的数据
4.begin 得到数组头的指针
5.end 得到数组的最后一个单元+1的指针
6.front 得到数组头的引用
7.back 得到数组的最后一个单元的引用
8.max_size 得到vector最大可以是多大
9.capacity 当前vector分配的大小
10.size 当前使用数据的大小
11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve 改变当前vecotr所分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty 判断vector是否为空
18.swap 与另一个vector交换数据

函数实现功能:其中vector < int > c.

c.clear() 移除容器中所有数据。
c.empty() 判断容器是否为空。
c.erase(pos) 删除pos位置的数据
c.erase(beg,end) 删除[beg,end)区间的数据
c.front() 传回第一个数据。
c.insert(pos,elem) 在pos位置插入一个elem拷贝
c.pop_back() 删除最后一个数据。
c.push_back(elem) 在尾部加入一个数据。
c.resize(num) 重新设置该容器的大小
c.size() 回容器中实际数据的个数。
c.begin() 返回指向容器第一个元素的迭代器
c.end() 返回指向容器最后一个元素的迭代器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值