vector 广义上讲
一个动态的数组
但因为又自带支持多种操作所以比较好用。
vector实际分配的内存比你需要的内存多。
#include<algorithm>
声明
vector< 变量类型 > 变量名//一维
vector< vector<int> > v(m, vector<int>(n) ); //M*N二维记得要打空格
数组可以对vector进行初始化
vector < int > q(sum+1,sum+4);
依次类推
遍历
第一种按数组来
rep(i,0,4)
{
q.push_back(sum[i]);
}
rep(i,0,4)
{
printf("%d ",q[i]);
}
第二种迭代器
rep(i,0,4)
{
q.push_back(sum[i]);
}
for(vector <int>::iterator it=q.begin();it!=q.end();it++)
{
cout<<*(it)<<endl;
}
函数总结
排序
sort(q.begin(),q.end()); //小到大
reverse(q.begin(),q.end());//大到小
find
vector < int >::interator it = find(q.begin(),q.end(),5);
Insert
q.insert(q.begin()+2,5); //在q的第2个元素(从第0个算起)的位置插入数值5,如q为1,2,3,4,插入元素后为1,2,5,3,4
q.insert(q.begin()+1,3,1); //在q的第1个元素(从第0个算起)的位置插入3个数,其值都为1
q.insert(q.begin()+1,a+2,a+3); //a为数组
delete
q.clear(); //清空q中的元素
q.erase(q.begin()+2);//删除第3个元素
q.empty(); //判断q是否为空
q.pop_back(); //删除q最后一个元素
q.erase(q.begin()+1,q.begin()+3); //删除a中第1个(从第0个算起)到第2个元素