迭代器理解(以vector迭代器举例)

简介: 迭代器理解(以vector迭代器举例)

普通指针也是一种迭代器


   int  arr[5]={1,2,3,4,5};

   int *p=arr;

   for(int i=0;i<5;i++

   {

   //cout<<arr[i];

   cout<<*(p++);

   vector<int> v;   //声明一个vector的容器,头文件<vector>


一,添加数据

 


     v.push_back(10);


二,容器遍历

      每个容器都有自己专属的迭代器

第一种:


   vector<int>::iterator  itbegin=v.begin();//起始迭代器

   vector<int>::iterator  itend=v.end()//结束迭代器(指向尾地址的下一位)

   while(itbegin!=itend)

    {cout<<*(itbegin++)<<endl;}


第二种:


   for(vector<int>::iterator  it=v.begin();it!=v.end();it++)

      {cout<<*it<<endl;}


第三种:

利用系统提供的算法;for_each


   void   myprint(int val)

   {

   cout<<val<<endl;

   }

   for_each(v.begin(),v.end(),myprint)  //myprint为一个回调函数(写一个输出就够了)

    //头文件<algorithm>


三,理解迭代器


   class Person

   {  public:

              string  name;

               int     age;

   };

   for(vector<Person>::iterator  it=v.begin();it!=end();it++)

   {   //*it---------Person     //类比:Person    *it;

        cout<<  (*it).name; //Person(*it)不为指针类型}

 

   for(vector<Person*>::iterator  it=v.begin();it!=end();it++)

   {   //*it---------Person*    //类比:Person **it;

        cout<<  (*it)->name; //Person*(*it)为指针类型}


四,双层嵌套


   vector<vector<int>> v;

   vector<int> v1;

   vector<int> v2;

   vector<int> v3;

   v.push_back(v1);

   v.push_back(v2);

   v.push_back(v3);

   for(vector<vector<int>>::iterator  it=v.begin();it!=v.end();it++)

   {   //  *t------vector<int>

        for(vector<int>::iterator  vit=(*it).begin();vit!=(*it).end();vit++)

               {  //  *vit------int

                    cout<<*vit<<endl;

                }

   }


 


目录
打赏
0
0
0
0
0
分享
相关文章
好用的国产Linux系统有那些
好用的国产Linux系统有那些
2037 0
教育随身而行——可穿戴设备如何赋能未来课堂?
教育随身而行——可穿戴设备如何赋能未来课堂?
120 16
阿里云服务器安全攻略参考:基础防护与云安全产品简介
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题,阿里云服务器除了提供基础的防护之外,我们也可以选择其他的云安全类产品来确保我们云服务器的安全。本文为您介绍阿里云服务器的基础安全防护机制,以及阿里云提供的各类云安全产品,帮助用户全面了解并选择合适的防护手段,为云上业务保驾护航。
417 11
网站部署Web应用防火墙(WAF)的必要性
Web应用防火墙(WAF)是专门保护Web应用的安全工具,能实时监控和过滤HTTP/HTTPS流量,防御SQL注入、XSS等攻击。它不仅是网站安全的第一道防线,也是满足《网络安全法》等合规要求的必要措施。通过阻断DDoS攻击、优化业务连续性,以及提供智能安全态势感知,WAF帮助企业在复杂网络环境中保障数据安全、维护用户信任并确保业务稳定运行。部署WAF已成为网站运营者不可或缺的安全选择。
108 0
机器学习面试笔试知识点之非监督学习-K 均值聚类、高斯混合模型(GMM)、自组织映射神经网络(SOM)
机器学习面试笔试知识点之非监督学习-K 均值聚类、高斯混合模型(GMM)、自组织映射神经网络(SOM)
210 0
Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例
本文深入探讨了 Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例。枚举适合表示有限的、离散的状态或选项,结构体则适用于具有特定属性和行为的数据结构。两者在存储方式、继承性和灵活性上有所不同,但在实际开发中常结合使用,以充分发挥各自优势。
224 3
什么是云计算,为什么选择阿里云?
阿里云提供的云计算服务让您能以按需、按量的方式获取算力,涵盖计算、存储、网络等多种形态,无需自建数据中心。它具备弹性、敏捷、安全、稳定、高性能和低成本等优势,支持业务快速创新,保障数据安全及业务连续性,帮助您专注于核心业务发展。常见应用场景包括网站、小程序、移动应用及大模型问答机器人等。
249 1
在Linux中,内核模块是什么以及如何加载和卸载它们?
在Linux中,内核模块是什么以及如何加载和卸载它们?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问