**
vector
**
介绍的是vector的一些操作方法,个人感觉和string差不多,只是vector是个动态数组,好多操作都是自己的函数直接进行操作
#include<iostream>
#include<algorithm>
#include<vector>
#include<iomanip>
using namespace std;
vector<int>a(4);
vector<int>a1(4,2);
vector<int>a2(a1);
vector<int>a3(a1.begin(),a1.begin()+2);//复制a1的前二个,因为同为向量类型需加begin()
int b[10]={1,2,3,4,5,6,7,8,9,0};
vector<int>a10(b,b+8);
vector<int>a4(b,b+5);//因为b为整型数组可以这样写
vector<int> z,x;
int main()
{
a4.push_back(100);//最后一个位置的后面插入100
a4.insert(a4.begin(),111);//在最前面插入111
a4.insert(a4.begin()+1,111);//在下标为1的前面插入111
a4.insert(a4.begin()+1,4,6);//在下标为1的前面插入四个数值均为6的元素
a4.insert(a4.begin()+1,b+2,b+5);//注意此处b为数组,在下标为1的前面插入b的下标从2到5的元素
a.size();// 返回a中的元素
a.capacity();//返回a可以储存的元素
x.resize(15);//将x的元素调整为15个,多的删除,少的补充,补充的元素的值随机
a.resize(10,2);//将x的元素调整为10个,多的删除,少的补充,补充的元素的值为2
x.reserve(100);//将容量扩充为100
a1.swap(a4);//将a1和a4进行转换
cout<<a4[0]<<" "<<a4[1]<<endl;
z.assign(a1.begin(),a1.begin()+3);
z.assign(4,6);//z中有4个为值6的元素
cout<<a4.front()<<endl;//返回第一个元素
cout<<a4.back()<<endl;//返回最后一个元素
z.clear();//清空z中所有元素
cout<<a4.empty()<<endl<<z.empty()<<endl;
//判断是否为空·,不为空输出0 为空输出1
a1.pop_back();//删除最后一个元素
a4.erase(a4.begin()+1,a4.begin()+3);//删除下标从1到3的元素,并用后面的元素补齐删除的空缺
vector<int>p;
for(int i=0;i<10;++i){p.push_back(i);}
//向向量p增加元素
//下面主要介绍vector的几种简单的应用算法
//对a中的从a.begin()到a.end()的元素进行从小到大排列
sort(a.begin(),a.end());
//对a中的从a.begin()(到a.end()的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1
reverse(a.begin(),a.end());
//把a中的从a.begin()到a.end()的元素复制到b中,从x.begin()+1的位置(包括它)开始复制,覆盖掉原有元素
copy(a.begin(),a.end(),x.begin()+1);
std :: vector<int>::iterator it=find(a10.begin(),a10.end(),4);
if(it!=a10.end())
cout<<*it; //因为vectorn本身没有搜索功能,需要写头文件algorithm
//因为命名空间的问题 需要加上std::
//对于string ,*it相当于一个字符
//对于vector<string> *it 相当于一个string
//因此 *it相当于 int
return 0;
}
最后建议 :眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!