vector意思为矢量,其实和向量差不多
首先要包含头文件吧
#include<vector>
然后肯定要定义应该出来吧
vector<int> v;//<>里面写上里面的数据类型
一、赋值类型:将数据放入容器《下面有实例演示》
1. v.push_back(10);//在最后加一个10
2.v.assign(4, 2);//将v重置为4个2(会将之前的数据弄没)
3.v.assign(m.begin(), m.end());//m为另一个容器,将起始迭代器(位置)与最后一个(自己想取的范围最后一个:注意不包括这个)告诉他会将v重置为那些数据
4.v.insert(v.begin()+1,100);//这个意思是在第2的位置插入100
5.v.insert(v.begin()+1,3,100);//这个意思是在第2的位置开始插入3个100
6.v.insert(v.begin() + 1, b , b + 2);//注意b为数组,将b从0~1(2不包含)的元素插到1位置后的
二、查看数据的内容-------->有两种方法
(1)int a=v[0];//直接用[ ]加数字找 (前提v[ n ]存在,否则程序崩溃)
(2)int b=v.at(0);//at函数来查看(前提v.at(n)存在,否则程序崩溃)
----->at()与[]有什么区别呢
[]和at()的区别在于[]不检查索引是否有效,而at()在遇到无效索引时会抛出out_of_range异常.
就看要不要接异常了
(3)一些其他函数查看值
v.back(); //返回v的最后一个元素
v.front(); //返回v的第一个元素
三、分配内存操作
1.v.resize(10); //将v的现有元素个数调至10个,多则删,少则补,其值随机
2.v.resize(10,2); //将v的现有元素个数调至10个,多则删,少则补,其值为2
3.v.reserve(100); //将v的容量(capacity)扩充至100
四、对vector的一下其他类型操作
1.v.size(); //返回v中元素的个数;
2.v.capacity(); //返回v在内存中总共可以容纳的元素个数
3.v.clear(); //清空v中的元素
4.v.empty(); //判断v是否为空,空则返回ture,不空则返回false
5.v.pop_back(); //删除v向量的最后一个元素
6.v.swap(b); //b为向量(就是vector开辟的),将v中的元素和b中的元素进行整体性交换
7.v.begin();//返回起始迭代器位置
8.v.end();//返回最后迭代器(没有数据!!!)
9.使用reverse_iterator反向迭代器
(1)v.rend();//返回起始迭代器位置
(2)v.regain();/返回最后迭代器(没有数据!!!)
10.v.erase(v.begin()+1,v.begin()+3); //删除a中第1个(从第0个算起)到第2个元素,删除数据
2.对v.insert的演示
v.insert(v.begin()+1,100);//这个意思是在第2的位置插入100
v.insert(v.begin()+1,3,100);//这个意思是在第2的位置开始插入3个100
v.insert(v.begin() + 1, b , b + 2);//注意b为数组,将b从0~1的元素插到1位置后的
遍历容器
for(vector<int>::iterator a=v.begin();a!=v.end();++a)
//正向迭代器 iterator begin()指向第一个元素 end()指向最后一个元素的后一个位置
{
cout<<*a<<" ";//正常输出数据
}
cout<<endl;
for(vector<int>::reverse_iterator a=v.rbegin();a!=v.rend();++a)
//反向迭代器 reverse_iterator rbegin()指向最后一个元素 rend()指向第一个元素的后一个位置
{
cout<<*a<<" ";//反向输出数据
}
return 0;
}