遍历:集合中每个元素一次且仅做一次访问。
C++中存在很多遍历方式,常见如下几种:

  • 传统C for写法
  • 迭代器for写法
  • STL for_each写法
  • C++11迭代器autofor写法
  • C++11 for loop scope写法
  • C++11 STL for_each与lamdba表达式

下面实例说明字符串与向量的遍历。

字符串遍历

string str("abcdefg");

1.传统C for写法

for(size_t i=0;i<str.size();i++){cout << str[i] << endl;
}

2.迭代器for写法

for(string::iterator it = str.begin();it != str.end();it++){cout << *it << endl;
}

3.STL for_each写法

void print(char c){cout << c << endl;
}
for_each(str.begin(),str.end(),print);

4.C++11迭代器写法

for(string::iterator it = begin(str);it != end(str);it++){cout << *it << endl;
}

或者

for(auto it = begin(str);it != end(str);it++){cout << *it << endl;
}

5. C++ 11 for loop scope写法

for(char c : str){cout << c << endl;
}

或者

for(auto c : str){cout << c << endl;
}

6.C++ 11 STL for_each与lamdba表达式

for_each(begin(str),end(str),[](char c){cout << c << endl;});

向量遍历

vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);

1.C写法

for(size_t i=0;i<vec.size();i++){cout << vec[i] << endl;
}

2.迭代器写法

for(vector<int>::iterator it = vec.begin();it != vec.end();it++){cout << *it << endl;
}

3.STL for_each写法

void print(int n){cout << n << endl;
}
for_each(vec.begin(),vec.end(),print);

4.C++11迭代器写法

for(vector<int>::iterator it = begin(vec);it != end(vec);it++){cout << *it << endl;
}

或者

for(auto it = begin(vec);it != end(vec);it++){cout << *it << endl;
}

5.C++ 11 for新语法写法

for(int n : vec){cout << n << endl;
}

或者

for(auto n : vec){cout << n << endl;
}

6.C++ 11 STL for_each与lamdba表达式

for_each(begin(vec),end(vec),[](int n){cout << n << endl;});

C++遍历(traversal)总结相关推荐

  1. 【Python算法】遍历(Traversal)、深度优先(DFS)、广度优先(BFS)

    图结构: 非常强大的结构化思维(或数学)模型.如果您能用图的处理方式来规范化某个问题,即使这个问题本身看上去并不像个图问题,也能使您离解决问题更进一步. 在众多图算法中,我们常会用到一种非常实用的思维 ...

  2. 树 森林 二叉树 遍历

    所谓遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问. 访问结点所做的操作依赖于具体的应用问题, 具体的访问操作可能是检查节点的值.更新节点的值等. 不同的遍历 ...

  3. mysql游标表间数据迁移_FalseMySQL存储过程--gt;通过游标遍历和异常处理迁移数据到历史表-mysql-第二电脑网...

    -- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表.DELIMITER $$ USE `dbx`$$ 电脑技术网对<FalseMySQL存储过程-->通过 ...

  4. LeetCode-二叉树算法总结-层次遍历,路径总和等

    版权声明:本文为博主原创文章,欢迎转载,但请注明出处,谢谢愿意分享知识的你~~ https://blog.csdn.net/qq_32690999/article/details/80484440 & ...

  5. c语言利用遍历求树高的程序,用C语言实现二叉树的遍历极其应用

    用C语言实现二叉树的遍历极其应用 [1][摘要]:<数据结构>是计算机系学生的一门专业技术基础课程,计算机科学各领域及有关的应用软件都要用到各种数据结构.C语言有较丰富的数据类型.运算符以 ...

  6. Python二叉树的三种深度优先遍历

    Python二叉树的三种深度优先遍历 一.广度优先遍历和深度优先遍历 对二叉树进行遍历(traversal)是指依次对树中每个节点进行访问,在遍历的过程中实现需要的业务. 对树的遍历方式有广度优先遍历 ...

  7. 【Java 数据结构】二叉树的遍历和基本操作

    一.树型结构 1.概念 2.树的表示形式 二.二叉树 1.特点 2.两种特殊的二叉树 3.二叉树的性质 选择题: 4.二叉树的存储 5.二叉树的基本操作 5.1.创建一棵二叉树 5.2.二叉树的遍历 ...

  8. 二叉树的遍历实验报告C语言,数据结构-二叉树的遍历(类C语言描写叙述)

    遍历概念 所谓遍历(Traversal)是指沿着某条搜索路线.依次对树中每一个结点均做一次且仅做一次訪问.訪问结点所做的操作依赖于详细的应用问题. 遍历是二叉树上最重要的运算之中的一个,是二叉树上进行 ...

  9. python循环展示大写字母_python调用大写函数python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

最新文章

  1. 报错:该字符串未被识别为有效的DateTime
  2. python3安装常见问题_Python3下安装spyder及常见问题解决
  3. 安卓帧数监测软件_土壤墒情监测仪
  4. 5.15 pymysql 模块
  5. linux 设备驱动程序开发 第3版_Chapter2_The Current Process
  6. 【转】温故之.NET 异步
  7. mysql第二章_第二章 初识MySQL
  8. Oracle数据库不同损坏级别的恢复详解
  9. 线路板铜厚测试软件,厚铜线路板的铜厚是如何实现的
  10. Weak References 和 Soft reference
  11. 终于弄懂KMP算法了
  12. 阿里云获中国互联网网络安全威胁治理联盟特别贡献奖
  13. App专项测试测试有哪些?
  14. 关于我在黑马程序员培训毕业后的亲身体验
  15. w10用的c语言编译软件,STVP STM8 COSMIC C编译器在WIN10上的安装使用
  16. 初次打开QQ空间后IE卡死问题处理
  17. 手机QQ邮箱登录不上的解决办法
  18. 介绍java中Pair和Map的区别
  19. 孙鑫视频VC++深入详解学习笔记
  20. FreeRTOS 遇坑(1)

热门文章

  1. Hinton最新演讲!一种新神经网络:前向-前向FF算法,论文已公开!
  2. BZOJ1050 旅行comf
  3. 解决Redis manger 连接不上linux redis的问题
  4. 使用SpringBoot报错:Inferred type ‘S‘ for type parameter ‘S‘ is not within its bound。【解决办法】
  5. 6D Pose Estimation各方法对应的经典论文
  6. 2021安徽省安全员B证 多选题考试题库及答案
  7. 传统文化中,沉香对养身、养心、养神的功效
  8. 天河二号上运行ZHT(a zero-hop distributed table)
  9. chrome无法访问商店,打不开网页怎么办,五步轻松解决
  10. oracle 处理英文日期格式,日常收集整理oracle trunc 函数处理日期格式(很实用)