将从以上这几个层面开展学习vector。
vector使用及介绍
vector介绍
- vector是表示可变大小数组的序列容器。
- vector是一个可以动态改变的数组,大小会被容器自动处理。
- vector使用动态分配数组存储他的元素,分配空间策略是:vector会分配一些额外的空间以适应可能的增长。
- 与其他动态序列容器相比,vector在访问元素的时候更加高效,在末尾添加删除元素相对高效,对于不在末尾的删除和插入操作,效率则比较低。
vector的定义
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int>first;//无参构造
vector<int>second(5,25);//构造并初始化n个val
vector<int>third(second.begin(),second.end());
//使用迭代器进行初始化构造
vector<int>fourth(third);//拷贝构造
for(vector<int>::iterator it=first.begin();it!=first.end();it++)
{
cout<<' '<<*it;
}
cout<<endl;
for(vector<int>::iterator it=second.begin();it!=second.end();it++)
{
cout<<' '<<*it;
}
cout<<endl;
for(vector<int>::iterator it=third.begin();it!=third.end();it++)
{
cout<<' '<<*it;
}
cout<<endl;
for(vector<int>::iterator it=fourth.begin();it!=fourth.end();it++)
{
cout<<' '<<*it;
}
return 0;
}
vector iterator 的使用
begin() 获取第一个数据位置的iterator
end() 获取最后一个数据的下一个位置的iterator
rbegin() 获取最后一个数据位置的reverse_iterator
rend() 获取第一个数据位置的前一个位置的reverse_iterator
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int>v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
vector<int>::iterator it;
//运用迭代器进行遍历打印
for(it=v.begin();it!=v.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
//运用迭代器进行修改
for(it=v.begin();it!=v.end();it++)
{
*it*=2;
cout<<*it<<" ";
}
cout<<endl;
//使用反向迭代器进行遍历再打印
vector<int>::reverse_iterator rit;
for(rit=v.rbegin();rit!=v.rend();rit++)
{
cout<<*rit<<" ";
}
cout<<endl;
return 0;
}
反向迭代器的书写是需要注意的,尤其是反向迭代器和正向迭代器。
<