vector
描述:
相对于array,vector是一种动态空间,随着元素的加入,它会自动扩充空间以容纳新的元素。
初始化:
vector<int> n;
vector<int> n = {1,2,3,3};
vector<int> n(10,5); //初始化为10个5
vector<int> n(10); //初始化10个int类型的vector,值不确定
vector<int> n(a.begin(),a.begin()+5); //将a中的第0-5共6个值复制给n;
vector<vector<int> > n(5,vector<int>(6)); //二维vector, 5行6列
基本操作:
大小
n.size(); //返回vector元素个数
n.capacity(); //当前vector所能容纳的最大元素值
n.empty(); //判断vector是否为空
n.resize(a); //改变元素个数,小于a个则随机填充,多于a个则删除
n.resize(a,7); //改变元素个数,小于a个则填充7,多于a个则删除
n.reserve(n); //改变vector分配空间大小
访问
n.begin(); //返回指向第一个元素的iterator
n.end(); //返回指向最后一个元素的后一个iterator
n.rbigin() //反向迭代器,指向最后一个元素的一位
n.rend() //反向迭代器,指向第一个元素
n.front(); //返回n的第一个元素的引用
n.back(); //返回n的最后一个元素的引用
n.at(5); //返回第五个位置的引用
vector<int>::iterator it;
for(it = n.begin();it!=n.end();it++)
{
cout<<*it<<endl;
}
修改:
n.push_back(6); //在vector末尾插入元素6
n.pop_back(); //删除vector末尾元素
n.insert(n.bigin()+3,4); //在index=2的位置插入4
n.insert(n.begin()+3,4,6); //在index=2的位置插入4个数,其值为6
n.insert(n.bigin()+2,b+2,b+7); //在index=1的位置插入b中index = 1-5的元素
n.erase(n.bengin(),n.bingin()+4); //删除指针所指数据项
n.clear(); //清空n中的数据
常用算法
#include<algorighm>
vector<int> n = {1,2,3,4,5};
sort(n.begin(),n.end()); //排序
reverse(n.begin(),n.end()); //倒置
find(n.begin(),n.end(),6); //查找元素6,返回下标位置