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

网站开发的公司推荐中山移动网站建设公司

网站开发的公司推荐,中山移动网站建设公司,给自己企业怎么做网站,祖庙网站开发文章目录 前言一、什么是迭代器二、迭代器的分类三、迭代器的用法总结 前言 迭代器是一种可以访问和遍历容器中元素的对象#xff0c;它类似于指针#xff0c;但是具有更多的功能和灵活性。本文将介绍C迭代器的基本概念、分类、用法和注意事项。 一、什么是迭代器 迭代器它类似于指针但是具有更多的功能和灵活性。本文将介绍C迭代器的基本概念、分类、用法和注意事项。 一、什么是迭代器 迭代器iterator是一种抽象的数据类型它可以指向容器中的某个元素通过迭代器就可以读写它指向的元素。迭代器相当于容器和操作容器的算法之间的桥梁使得算法可以适用于不同类型的容器。 迭代器的用法类似于指针可以使用 * 运算符来解引用迭代器获取它指向的元素的值或引用。也可以使用 和 – 运算符来移动迭代器的位置使其指向容器中的前一个或后一个元素。另外还可以使用 和 ! 运算符来比较两个迭代器是否相等或不等即是否指向同一个元素。 二、迭代器的分类 C标准库中定义了五种类型的迭代器它们分别是 输入迭代器Input Iterator只能从容器中读取元素不能修改元素。只能单向移动即只能使用 运算符。输出迭代器Output Iterator只能向容器中写入元素不能读取元素。只能单向移动即只能使用 运算符。前向迭代器Forward Iterator可以读写容器中的元素。可以多次遍历同一容器即可以重复使用 运算符。双向迭代器Bidirectional Iterator可以读写容器中的元素。可以双向移动即可以使用 和 – 运算符。随机访问迭代器Random Access Iterator可以读写容器中的元素。可以随机访问任意位置的元素即可以使用 、-、、-、[] 等运算符。 不同类型的迭代器具有不同的功能和限制它们之间存在包含关系。例如随机访问迭代器是最强大的一种迭代器它包含了其他所有类型迭代器的功能。反之输出迭代器是最弱的一种迭代器它只能执行最基本的操作。 不同类型的容器提供了不同类型的迭代器如下表所示 容器迭代器类型vector随机访问deque随机访问list双向forward_list前向set/multiset双向map/multimap双向unordered_set/unordered_multiset前向unordered_map/unordered_multimap前向stack不支持queue不支持priority_queue不支持 从表中可以看出顺序容器vector、deque、list、forward_list提供了随机访问、双向或前向三种类型的迭代器关联容器set/multiset、map/multimap提供了双向类型的迭代器无序关联容器unordered_set/unordered_multiset、unordered_map/unordered_multimap提供了前向类型的迭代器容器适配器stack、queue、priority_queue不支持迭代器。 三、迭代器的用法 要使用一个容器的迭代器首先需要定义一个迭代器变量其一般形式为 容器类型::iterator 迭代器名;例如要定义一个 vector 容器的迭代器可以写为 vectorint::iterator it;也可以使用 auto 关键字来自动推断迭代器的类型如 auto it v.begin(); // v 是一个 vector 容器要获取一个容器的迭代器可以使用容器的成员函数 begin() 和 end()它们分别返回指向容器第一个元素和最后一个元素之后位置的迭代器。例如 vectorint v {1, 2, 3, 4, 5}; auto it1 v.begin(); // it1 指向 v 的第一个元素即 1 auto it2 v.end(); // it2 指向 v 的最后一个元素之后的位置即 5 的后面也可以使用全局函数 std::begin() 和 std::end() 来获取容器的迭代器它们的功能和成员函数相同。例如 vectorint v {1, 2, 3, 4, 5}; auto it1 std::begin(v); // it1 指向 v 的第一个元素即 1 auto it2 std::end(v); // it2 指向 v 的最后一个元素之后的位置即 5 的后面要访问迭代器指向的元素可以使用 * 运算符来解引用迭代器获取它指向的元素的值或引用。例如 vectorint v {1, 2, 3, 4, 5}; auto it v.begin(); // it 指向 v 的第一个元素即 1 cout *it endl; // 输出 1 *it 10; // 修改 it 指向的元素的值为 10 cout *it endl; // 输出 10要移动迭代器的位置可以使用 和 – 运算符来使迭代器指向容器中的前一个或后一个元素。注意只有双向或随机访问类型的迭代器才支持 – 运算符。例如 vectorint v {1, 2, 3, 4, 5}; auto it v.begin(); // it 指向 v 的第一个元素即 1 it; // it 指向 v 的第二个元素即 2 --it; // it 指向 v 的第一个元素即 1 it; // it 指向 v 的第二个元素即 2 it--; // it 指向 v 的第一个元素即 1要比较两个迭代器是否相等或不等可以使用 和 ! 运算符。如果两个迭代器指向同一个容器中的同一个元素则它们相等否则它们不等。例如 vectorint v {1, 2, 3, 4, 5}; auto it1 v.begin(); // it1 指向 v 的第一个元素即 1 auto it2 v.begin(); // it2 指向 v 的第一个元素即 1 cout (it1 it2) endl; // 输出 true it2; // it2 指向 v 的第二个元素即 2 cout (it1 it2) endl; // 输出 false对于随机访问类型的迭代器还可以使用 、-、、-、[] 等运算符来随机访问任意位置的元素。例如 vectorint v {1, 2, 3, 4, 5}; auto it v.begin(); // it 指向 v 的第一个元素即 1 it 3; // it 指向 v 的第四个元素即 4了解了上面的迭代器基本操作后就可以对容器进行遍历。例如 vectorint v {1, 2, 3, 4, 5}; auto it v.begin(); // it 指向 v 的第一个元素即 1 while(it ! v.end()) {cout*it ;it; } coutendl;总结 本篇文章简要介绍了STL六大组件之一的迭代器(iterator)的基本用法希望对大家有所帮助。
http://www.hkea.cn/news/14491624/

相关文章:

  • 利用社交网站做淘宝客计算机信息网络系统
  • 建设小学瓯江小区网站徐州网站建设哪家好
  • 网站备案流程阿里云seo薪资seo
  • 免费wordpress响应式企业主题哈尔滨网站基础优化
  • 算命网站建设开发怎么做一个网站出来
  • 网站怎么建设商城中国建设银行人才招聘官方网站
  • 浏览器收录网站天津网站优化方案
  • 分析网站设计外贸公司一年能赚多少
  • 网络公司网站建设首页短期网站建设培训班
  • 遵义公司做网站无锡网站优化公司
  • 网站建设全过程及如何赚钱郑州企业网站优化排名
  • 2015年做那个网站致富钢结构工程外包项目网
  • 企业网站建设长沙树莓派wordpress
  • 设计网站建设图片wordpress留言表单
  • 哈尔滨个人建站模板合肥房产网二手房出售
  • 网站规划建设书软件开发管理软件
  • 电子商城网站建设的实训内容记述怎样创建一个网址
  • 新站seo外包安徽省所有建设类网站
  • 个人网站需要哪些内容网站开发风险
  • 注册网站后邮箱收到邮件口碑好的聊城网站建设
  • 怎么搜 织梦的网站网站开发实践
  • 铁岭市网站建设辽宁网站建设招标
  • 南宁网站制作开发公司seo排名优化联系13火星软件
  • 视频网站顶部效果怎么做的在哪些网站上发外链好
  • wordpress建站有什么好处wordpress如何让设置关键词
  • 查询数据的网站怎么做的做网站需要备案吗
  • 深圳汽车网站建设怎么对网站上的游记做数据分析
  • 公路水运建设质量安全监督网站优化网站设计有哪些方法
  • 网站代理服务器连接失败wordpress添加下载
  • 重庆网站seo费用深圳网站建设制作哪家便宜