C++遍历(traversal)总结
遍历:集合中每个元素一次且仅做一次访问。
C++中存在很多遍历方式,常见如下几种:
- 传统C
for
写法 - 迭代器
for
写法 - STL
for_each
写法 - C++11迭代器
auto
与for
写法 - 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)总结相关推荐
- 【Python算法】遍历(Traversal)、深度优先(DFS)、广度优先(BFS)
图结构: 非常强大的结构化思维(或数学)模型.如果您能用图的处理方式来规范化某个问题,即使这个问题本身看上去并不像个图问题,也能使您离解决问题更进一步. 在众多图算法中,我们常会用到一种非常实用的思维 ...
- 树 森林 二叉树 遍历
所谓遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问. 访问结点所做的操作依赖于具体的应用问题, 具体的访问操作可能是检查节点的值.更新节点的值等. 不同的遍历 ...
- mysql游标表间数据迁移_FalseMySQL存储过程--gt;通过游标遍历和异常处理迁移数据到历史表-mysql-第二电脑网...
-- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表.DELIMITER $$ USE `dbx`$$ 电脑技术网对<FalseMySQL存储过程-->通过 ...
- LeetCode-二叉树算法总结-层次遍历,路径总和等
版权声明:本文为博主原创文章,欢迎转载,但请注明出处,谢谢愿意分享知识的你~~ https://blog.csdn.net/qq_32690999/article/details/80484440 & ...
- c语言利用遍历求树高的程序,用C语言实现二叉树的遍历极其应用
用C语言实现二叉树的遍历极其应用 [1][摘要]:<数据结构>是计算机系学生的一门专业技术基础课程,计算机科学各领域及有关的应用软件都要用到各种数据结构.C语言有较丰富的数据类型.运算符以 ...
- Python二叉树的三种深度优先遍历
Python二叉树的三种深度优先遍历 一.广度优先遍历和深度优先遍历 对二叉树进行遍历(traversal)是指依次对树中每个节点进行访问,在遍历的过程中实现需要的业务. 对树的遍历方式有广度优先遍历 ...
- 【Java 数据结构】二叉树的遍历和基本操作
一.树型结构 1.概念 2.树的表示形式 二.二叉树 1.特点 2.两种特殊的二叉树 3.二叉树的性质 选择题: 4.二叉树的存储 5.二叉树的基本操作 5.1.创建一棵二叉树 5.2.二叉树的遍历 ...
- 二叉树的遍历实验报告C语言,数据结构-二叉树的遍历(类C语言描写叙述)
遍历概念 所谓遍历(Traversal)是指沿着某条搜索路线.依次对树中每一个结点均做一次且仅做一次訪问.訪问结点所做的操作依赖于详细的应用问题. 遍历是二叉树上最重要的运算之中的一个,是二叉树上进行 ...
- python循环展示大写字母_python调用大写函数python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
最新文章
- 报错:该字符串未被识别为有效的DateTime
- python3安装常见问题_Python3下安装spyder及常见问题解决
- 安卓帧数监测软件_土壤墒情监测仪
- 5.15 pymysql 模块
- linux 设备驱动程序开发 第3版_Chapter2_The Current Process
- 【转】温故之.NET 异步
- mysql第二章_第二章 初识MySQL
- Oracle数据库不同损坏级别的恢复详解
- 线路板铜厚测试软件,厚铜线路板的铜厚是如何实现的
- Weak References 和 Soft reference
- 终于弄懂KMP算法了
- 阿里云获中国互联网网络安全威胁治理联盟特别贡献奖
- App专项测试测试有哪些?
- 关于我在黑马程序员培训毕业后的亲身体验
- w10用的c语言编译软件,STVP STM8 COSMIC C编译器在WIN10上的安装使用
- 初次打开QQ空间后IE卡死问题处理
- 手机QQ邮箱登录不上的解决办法
- 介绍java中Pair和Map的区别
- 孙鑫视频VC++深入详解学习笔记
- FreeRTOS 遇坑(1)
热门文章
- Hinton最新演讲!一种新神经网络:前向-前向FF算法,论文已公开!
- BZOJ1050 旅行comf
- 解决Redis manger 连接不上linux redis的问题
- 使用SpringBoot报错:Inferred type ‘S‘ for type parameter ‘S‘ is not within its bound。【解决办法】
- 6D Pose Estimation各方法对应的经典论文
- 2021安徽省安全员B证 多选题考试题库及答案
- 传统文化中,沉香对养身、养心、养神的功效
- 天河二号上运行ZHT(a zero-hop distributed table)
- chrome无法访问商店,打不开网页怎么办,五步轻松解决
- oracle 处理英文日期格式,日常收集整理oracle trunc 函数处理日期格式(很实用)