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

商务网站建设毕业设计网络营销的推广

商务网站建设毕业设计,网络营销的推广,商业网站建设的方法,郴州网站小程序文章目录 前言一、什么是迭代器二、迭代器的分类三、迭代器的用法总结 前言 迭代器是一种可以访问和遍历容器中元素的对象,它类似于指针,但是具有更多的功能和灵活性。本文将介绍C迭代器的基本概念、分类、用法和注意事项。 一、什么是迭代器 迭代器&a…

文章目录

  • 前言
  • 一、什么是迭代器
  • 二、迭代器的分类
  • 三、迭代器的用法
  • 总结


前言

迭代器是一种可以访问和遍历容器中元素的对象,它类似于指针,但是具有更多的功能和灵活性。本文将介绍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 容器的迭代器,可以写为:

vector<int>::iterator it;

也可以使用 auto 关键字来自动推断迭代器的类型,如:

auto it = v.begin(); // v 是一个 vector 容器

要获取一个容器的迭代器,可以使用容器的成员函数 begin() 和 end(),它们分别返回指向容器第一个元素和最后一个元素之后位置的迭代器。例如:

vector<int> v = {1, 2, 3, 4, 5};
auto it1 = v.begin(); // it1 指向 v 的第一个元素,即 1
auto it2 = v.end(); // it2 指向 v 的最后一个元素之后的位置,即 5 的后面

也可以使用全局函数 std::begin()std::end() 来获取容器的迭代器,它们的功能和成员函数相同。例如:

vector<int> v = {1, 2, 3, 4, 5};
auto it1 = std::begin(v); // it1 指向 v 的第一个元素,即 1
auto it2 = std::end(v); // it2 指向 v 的最后一个元素之后的位置,即 5 的后面

要访问迭代器指向的元素,可以使用 * 运算符来解引用迭代器,获取它指向的元素的值或引用。例如:

vector<int> 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

要移动迭代器的位置,可以使用 ++ 和 – 运算符来使迭代器指向容器中的前一个或后一个元素。注意,只有双向或随机访问类型的迭代器才支持 – 运算符。例如:

vector<int> 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

要比较两个迭代器是否相等或不等,可以使用 == 和 != 运算符。如果两个迭代器指向同一个容器中的同一个元素,则它们相等;否则,它们不等。例如:

vector<int> 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

对于随机访问类型的迭代器,还可以使用 +、-、+=、-=、[] 等运算符来随机访问任意位置的元素。例如:

vector<int> v = {1, 2, 3, 4, 5};
auto it = v.begin(); // it 指向 v 的第一个元素,即 1
it += 3; // it 指向 v 的第四个元素,即 4

了解了上面的迭代器基本操作后,就可以对容器进行遍历。例如:

vector<int> v = {1, 2, 3, 4, 5};
auto it = v.begin(); // it 指向 v 的第一个元素,即 1
while(it != v.end())
{cout<<*it<<" ";it++;
}
cout<<endl;

总结

本篇文章简要介绍了STL六大组件之一的迭代器(iterator)的基本用法,希望对大家有所帮助。

http://www.hkea.cn/news/908988/

相关文章:

  • 做网上商城网站哪家好杭州seo靠谱
  • 做营销网站制作关键词优化课程
  • 网站移动终端建设口碑营销成功案例
  • 美国做试管婴儿 网站推广普通话宣传语
  • 网站备案信息查询系统软文发布平台媒体
  • 泊头哪给做网站的好制作网页的教程
  • 漳州建设银行网站首页在百度上打广告找谁
  • 网站免费建站k网络营销策划方案书
  • 网站建设类公网店推广的作用
  • 安平做网站除了百度指数还有哪些指数
  • 做网站公司 蓝纤科技知乎怎么申请关键词推广
  • 临沂免费做网站发表文章的平台有哪些
  • 网站推广的方式包括哪些广西网站建设制作
  • 杭州营销网站建设东莞网站建设哪家公司好
  • 企业做营销型网站手机如何制作网页
  • 连云港网站关键词优化seo自学教程
  • 网站全站出售淘宝关键词排名怎么查询
  • 龙口市规划建设局网站查询收录
  • 学校网站建设注意什么东莞网站营销推广
  • 网站设计模板是什么百度网盘人工客服电话多少
  • wordpress文章收缩长春seo优化企业网络跃升
  • 网站地图调用希爱力双效片骗局
  • 珠海网站建设维护友情链接买卖代理
  • 武汉企业网站推广外包网络广告营销案例分析
  • 深圳哪里有做网站的汕头seo排名收费
  • 如何用腾讯云主机做网站株洲发布最新通告
  • 中国建设银行官网站下载信息流广告投放公司
  • 合肥建站平台网络平台推广是干什么
  • 黄冈工程建设标准造价信息网优化工作流程
  • 怎么做服装外贸网站怎么去推广一个产品