概述
iterator在vector中的使用
iterator也被称为迭代器,可以指向一个范围内(如queue、vector、set等等)的元素,与指针类似。迭代器分为五个不同的类别,输入、输出、向前、双向、随机访问。
在vector中的迭代器属于随机访问迭代器。
使用时需要注意,一个长度为5的vector对象,它的end指向的元素相当于字符串中的‘ ’,是一个无效的元素,需要进行-1操作,才是真实的指向元素尾的迭代器。
vector<int> a;
for(int i = 1; i < 6; i++)
a.push_back(i);
int size;
size = a.size();
cout<<"The vector's length is "<<size<<endl;
vector<int>::iterator iter = a.end();
cout<<*iter<<endl;
在这里,我们调试可以看到*iter的值为-1163005939
输出是0.
而当我们让iter减1时,它指向的就是数组尾的元素。
int main(void)
{
//d迭代器的使用
vector<int> a;
for(int i = 1; i < 6; i++)
a.push_back(i);
int size;
size = a.size();
cout<<"The vector's length is "<<size<<endl;
vector<int>::iterator iter = a.end();
cout<<*iter<<endl;
iter = iter - 1;
cout<<*iter<<endl;
这里*iter的值为5.
下面是有关vector的其他运算
int main(void)
{
//d迭代器的使用
vector<int> a;
for(int i = 1; i < 6; i++)
a.push_back(i);
int size;
size = a.size();
cout<<"The vector's length is "<<size<<endl;
vector<int>::iterator iter = a.end();
cout<<*iter<<endl;
iter = iter - 1;
cout<<*iter<<endl;
iter = iter - 1;
cout<<*iter<<endl;
iter = iter + 2;
cout<<*iter<<endl;
iter = iter - 1;
cout<<*iter<<endl;
运行截图如下所示
我们可以看到,迭代器指向是有一定范围限制的,当超出范围时就会为随机数,使用时需要注意。
当然,通过官方文档得知,迭代器除了允许进行算符运算(++,–)之外,也可以进行判断,取值,赋值(如将vector的begin,end赋值给迭代器),随机访问的支持像数组一样的通过下标取值的操作(例如a[n])。
最后
以上就是唠叨花生为你收集整理的iterator在vector中的使用的全部内容,希望文章能够帮你解决iterator在vector中的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复