当前位置: 首页 > news >正文

长沙营销型网站建设费用深圳网络公司推广平台

长沙营销型网站建设费用,深圳网络公司推广平台,wordpress媒体库备份,网站首页布局迭代器是一种检查容器内元素并且遍历容器内元素的数据类型。它提供对一个容器中的对象的访问方法&#xff0c;并且定义了容器中对象的范围。一、vector容器的iterator类型vector容器的迭代器属于随机访问迭代器&#xff0c;一次可以移动多个位置。vector<int>::iterator …

迭代器是一种检查容器内元素并且遍历容器内元素的数据类型。它提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。

一、vector容器的iterator类型

vector容器的迭代器属于随机访问迭代器,一次可以移动多个位置。

vector<int>::iterator iter;//变量名为iter

成员函数

功能

begin()

返回指向容器中第一个元素的正向迭代器,若是const类型容器,在该函数返回的是常量正向迭代器。

end()

返回指向容器最后一个元素之后一个位置的正向迭代器;如果是const类型容器,在该函数返回的是常量正向迭代器。此函数通常和begin()搭配使用。

rbegin()

返回指向最后一个元素的反向迭代器;如果是const类型,在该函数返回的是常量反向迭代器。

rend

返回指向容器第一个元素之后一个位置的反向迭代器;如果是const类型容器,在该函数返回的是常量正向迭代器。此函数通常和rbegin()搭配使用。

cbegin()

和begin()功能类似,其返回的迭代器类型为常量正向迭代器,不能修改元素。

cend

和end()功能类似,其返回的迭代器类型为常量正向迭代器,不能修改元素。

crbegin()

和rbegin()功能类似,其返回的迭代器类型为常量反向迭代器,不能修改元素。。

crend

和rend()功能类似,其返回的迭代器类型为常量反向迭代器,不能修改元素

#include<iostream>
#include<vector>
using namespace std;
int main()
{int arr[]={0,1,2,3,4};vector<int> vecInt;vecInt.assign(arr,arr+5);vector<int>::iterator t;vector<int>::reverse_iterator t1;
//1、    t=vecInt.begin();for(;t<vecInt.end();t++){cout<<*t<<" ";} cout<<endl;
//    输出:0,1,2,3,4 //2、 t=vecInt.end();t--; for(;t>=vecInt.begin();t--){cout<<*t<<" ";} cout<<endl;
//    输出:4,3,2,1,0 //3、t1=vecInt.rbegin();for(;t1<vecInt.rend();t1++){cout<<*t1<<" ";} cout<<endl;
//    输出:4,3,2,1,0 //4、 t1=vecInt.rend();t1--;for(;t1>=vecInt.rbegin();t1--){cout<<*t1<<" ";} cout<<endl;
//    输出:0, 1, 2, 3, 4return 0;
} 

二、迭代器失效

  1. 插入元素后导致失效

#include<iostream>
#include<vector>
using namespace std;
int main()
{vector<int> vecInt1;vecInt1.push_back(0);vecInt1.push_back(1);vecInt1.push_back(2);vecInt1.push_back(3);vecInt1.push_back(4);vector<int>::iterator t;t=vecInt1.begin()+2;vecInt1.insert(t,5);cout<<*t<<endl;
//    本来应该指向2,插入后指向5 return 0; 
}
  1. 序列使容器删除元素失效

错误示范:

#include<iostream>
#include<vector>
using namespace std;
int main()
{vector<int> vecInt1;vecInt1.push_back(0);vecInt1.push_back(1);vecInt1.push_back(1);vecInt1.push_back(1);vecInt1.push_back(4);vector<int>::iterator t;t=vecInt1.begin();for(;t<vecInt1.end();t++){if(*t==1){vecInt1.erase(t);}         } t=vecInt1.begin();for(;t<vecInt1.end();t++){cout<<*t<<" ";} cout<<endl;//    输出为0,1,4,没有删除干净1 return 0; 
}

由于删除后下一个元素会移到被删除的元素,如果此时指针仍自加1,导致该元素被忽略

解决办法:

#include<iostream>
#include<vector>
using namespace std;
int main()
{vector<int> vecInt1;vecInt1.push_back(0);vecInt1.push_back(1);vecInt1.push_back(1);vecInt1.push_back(1);vecInt1.push_back(4);vector<int>::iterator t;t=vecInt1.begin();for(;t<vecInt1.end();){if(*t==1){vecInt1.erase(t);} else{t++;}        } t=vecInt1.begin();for(;t<vecInt1.end();t++){cout<<*t<<" ";} cout<<endl;//    输出为0,4return 0; 
}

http://www.ds6.com.cn/news/113707.html

相关文章:

  • 建个微商城网站免费网站的软件
  • 前端做网站都要做哪些网站建设公司服务
  • 茶叶网站建设目的seo工具是什么意思
  • 做暧动漫视频在线观看网站谷歌sem服务商
  • 做点阵纸的网站精准营销的三要素
  • 做网站如何与美工配合上海网络推广营销策划方案
  • 淘宝网站如何推广北京seo优化服务
  • 政府网站建设的重要意义找个网站
  • 交易平台网站程序怎么把产品放到网上销售
  • wordpress怎么修改镇江seo快速排名
  • 南昌市公司网站建设微平台推广
  • 企业网页与网站区别人民日报新闻
  • 诸城盟族网站建设大数据精准获客软件
  • 做网站需要的技术教你如何快速建站
  • 做视频哪个网站收入高淘宝流量助手平台
  • 网站开发实习总结网站怎么做谷歌推广
  • 做网站违法吗互联网域名交易中心
  • 企业做网站哪家好宁波网站建设方案推广
  • 洛阳网站建设沈阳专业关键词推广
  • 大渡口网站建设网络服务器是指什么
  • 简单的网页制作素材东莞关键词优化平台
  • 网站建设公司发展理念百度指数app
  • 室内设计网站会员哪个值得买百度手机管家
  • 网站设计联系百度推广深圳分公司
  • 西宁哪家公司做网站广西疫情最新消息
  • 网站中插入地图百度推广怎么注册账号
  • 游族网络公司最新消息北京网站优化步骤
  • 青岛企业展厅设计公司郑州技术支持seo
  • 政府电子网站建设解决方案网站友情链接是什么
  • 网站中的实名身份证验证怎么做360搜索优化