C++ 的几个for 循环,范围for语句

我认为做嵌入式开发也需要学习C++开发,可能我们学习的不只是一种编程语言,而是一种编程思想,C++相对于C语言来说,会需要更多的想象力,原因就是C++的特点太多了。

不过,我们可以通过学习C++的知识,来掌握面向对象的编程思想,有了这样的思想后,再去看代码或者去做自己的项目,是非常有帮助的。

这个号是我的僚机号,会发一些大号发不了、或者没有档期发的内容,欢迎大家关注。


C++新标准提供的范围for语句.这种语句遍历给定序列中个元素并对序列中每一个值执行某种操作,其语法形式是:

for(declaration : expression)statement

其中,expression部分是一个对象,用于表示一个序列。declaration部分负责定义一个变量,该变量将用于访问序列中的基础元素。每次迭代,declaration部分的变量会被初始化为expression部分的下一个元素值

例子:

#include <iostream>using namespace std;int main()
{string str("this is a c++");//每行输出str中的一个字符for(auto c : str)cout<<c<<endl;system("pause");return 0;
} 

代码输出:

t
h
i
si
sac
+
+
请按任意键继续. . .

代码中的 auto 关键字让编译器来决定 c的类型,每次迭代后,str的下一个字符赋值给 c

看看比较正常的 for 语句

#include <iostream>using namespace std;int main()
{string str("this is a c++");for(int i = 0;i<str.length();i++)cout<<str.at(i)<<endl;system("pause");return 0;
} 

输出:

t
h
i
si
sac
+
+
请按任意键继续. . .

第三种方法

#include <iostream>using namespace std;int main()
{string str("this is a c++");for(auto i = str.begin(); i!= str.end();++i)cout<<(*i)<<endl;system("pause");return 0;
} 

输出

t
h
i
si
sac
+
+
请按任意键继续. . .

第四种方法

使用STL函数,需要包含头文件哦。

#include <iostream>
#include <algorithm>
#include <vector> using namespace std;int main()
{string str("this is a c++");for_each(str.begin(),str.end(),[](char item){cout<<item << " ";});system("pause");return 0;
} 

输出

t h i s   i s   a   c + + 请按任意键继续. . .

写代码的篮球球痴

微信扫描二维码,关注我的公众号 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51单片机——多功能电子钟

单片机——多功能电子钟 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 实现的功能有&#xff1a;走 时、校时、闹钟、温度、遥控这几个功能。要想实现这几个功能&#xff0c;其中走时所需要的就是时 钟芯片&#xff0c;即 DS1302&#xff1b;时间需要…

用数学运算实现数据无损压缩的算法

用数学运算实现数据无损压缩的算法<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />(An arithmetic On Lossless Data-Compress By Mathematical Operation)王春海1 魏玉冬2&#xff08;[1]河北经贸大学信息技术学院 2河北经贸…

dubbo的监控中心

监控中心实际上就是一个web工程。 是dubbo官方给我们提供的一个war包。 只需要部署在Tomcat中就可以了。 推荐把监控中心与注册中心部署在一台服务器上&#xff0c;这样可以不需要任何配置。 部署完成后直接启动Tomcat就可以使用。 注&#xff1a;tail -f logs/catalina.out即可…

​我敢说,这是最全的常用设计模式汇总

今天&#xff0c;想跟大家聊聊代码能力的提升。想起我刚入行那会&#xff0c;怀抱满腔激情&#xff0c;到处学热门框架&#xff0c;但实际上受限于公司体量和业务逻辑&#xff0c;其实往往用不上&#xff0c;时间久了&#xff0c;不用就忘记了&#xff0c;于是在日复一日的工作…

嵌入式高手之路

嵌入式高手之路 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 第一部分&#xff1a;LINUX平台搭建与环境熟悉 了解Linux系统&#xff1b;区分各种版本的Linux系统&#xff0c;以便于拓展 Linux视野。 1、Linux 简介&#xff1b; 2、Linux 系统的主要…

Meterpreter Guide

转载&#xff1a;http://wooyun.jozxing.cc/static/drops/tips-10146.html 0x01 入门篇(生成与接收) 功能介绍 msfpayload和msfencode已经被时代淘汰了现在都转为msfvenom了 msfvenom命令行选项如下&#xff1a;Options:-p, --payload payload> 指定需要使用的…

跟老肖聊天

今天跟一个创业的朋友老肖聊天&#xff0c;聊完之后有点沉重老肖是我的朋友&#xff0c;我讲的都是基于真实的内容&#xff0c;如果觉得我是吹牛或者过分如何&#xff0c;可以绕道&#xff0c;也请嘴下留情。老肖因为公司不景气&#xff0c;这两天出去面试&#xff0c;面试了三…

SSM中(Spring-SpringMVC-Mybatis)(一:概念)

一&#xff1a;Spring&#xff1a; 参照我的另一篇博客&#xff1a; http://www.cnblogs.com/GH0522/p/8127530.html 二:SpringMVC: 流程图&#xff1a; SpringMVC接口解释 DispatcherServlet&#xff1a; Spring提供的前端控制器&#xff0c;所有的请求都有经过它来统一分…

关于VISIO工具栏、菜单栏消失的解决办法

关于VISIO工具栏、菜单栏消失的解决办法1、打开注册表编辑器。2、VISIO 2000HKEY_CURRENT_USER\Software\Visio\Visio2000\Toolbars删除上述键值&#xff0c;再启动VISIO 2000就可以看到工具栏和菜单栏了。3、VISIO 2002HKEY_CURRENT_USER\Software\Microsoft\Visio\Toolbars删…

嵌入式软件书籍

嵌入式书籍推荐 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 Linux基础 1、《Linux与Unix Shell 编程指南》 C语言基础    1、《C Primer Plus&#xff0c;5th Edition》【美】Stephen Prata着    2、《The C Programming Language, 2nd Ed…

C语言函数库

sqrt() - C函数 C库函数 double sqrt(double x) 返回x的平方根。 声明 下面是函数sqrt()声明。 double sqrt(double x) 参数 x -- 这是浮点值。 返回值 这个函数返回x的平方根。 例子 下面的例子演示了如何使用sqrt()函数。 #include <stdio.h> #include <math.h>…

C++实现一个栈

我们先说下栈的知识&#xff0c;先看下我们之前写的文章栈&#xff0c;C语言实现如何自己实现一个栈堆和栈的区别&#xff08;转过无数次的文章&#xff09;这是一个栈这是我们把数据入栈的操作这是数据出栈的操作之前僚机号里面发了一个用C实现的栈文章&#xff0c;比较简单&a…

ApiController得到服务器端绝对路径

System.Web.Hosting.HostingEnvironment.MapPath("路径"); MSDN资料 将虚拟路径映射到服务器上的物理路径。 命名空间&#xff1a; System.Web.Hosting程序集&#xff1a; System.Web&#xff08;在 System.Web.dll 中&#xff09; 语法 public static string Map…

SVN的恢复历险记

今天&#xff0c;同事的机器可能出问题了。自动将Subversion服务器上的Source目录删除并且还Commit了。这可是框架部分的全部代码啊。不过没关系&#xff0c;好在Subversion的功能很强大。 方法很多&#xff1a; 1、选择Subversion --> Show Log&#xff0c;打开Log对话框&a…

JavaScript——文档对象模型

一、基本概念 文档对象模型&#xff08;DOM&#xff09;是表示文档和访问、操作构成文档的各种元素的应用程序接口&#xff08;API&#xff09;。它解决了NetScape的JavaScript和Microsoft的JavaScript之间的冲突&#xff0c;给web设计师和开发者一个标准的方法&#xff0c;可让…

colinux的安装

colinux安装 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、在windows上模拟linux环境&#xff0c;主要有三种方法&#xff1a; 1.VMware等虚拟机&#xff0c;缺点&#xff1a;占用系统资源多&#xff0c;运行速度慢。 2.Cygwin等模拟环境&#…

你搞清楚「NULL」、「0」、「'0'」、「0」「\0」了吗?

我们先讨论NULL&#xff0c;平时使用指针的时候&#xff0c;会经常遇见这个家伙&#xff0c;这个家伙的值是是这样定义的#define NULL 0 或者 #define NULL (void *)0我们看一下下面这段代码#include <stdio.h>int main () {size_t ii;int *ptr NULL;unsigned long *nul…

【uoj#207】共价大爷游长沙 随机化+LCT维护子树信息

题目描述 给出一棵树和一个点对集合S&#xff0c;多次改变这棵树的形态、在集合中加入或删除点对&#xff0c;或询问集合内的每组点对之间的路径是否都经过某条给定边。 输入 输入的第一行包含一个整数 id&#xff0c;表示测试数据编号&#xff0c;如第一组数据的id1&#xff0…

ping 命令的几种使用方法?

ping命令的几种使用方法&#xff1f;它是最基本&#xff0c;最常用的&#xff0c;测试物理网络的命令&#xff0c;它的使用频率很高&#xff0c;主要用于确定本地主机和另一台主机能否成功进行发送或接收数据包&#xff0c;根据返回的信息&#xff0c;我们就可以判断TCP/IP参数…

MongoDB基本应用操作整理

启动服务&#xff1a;mongod --dbpathg:/mongo/data 访问服务器&#xff0c;如下&#xff1a; mongodb这个软件的端口是27017 可以把mongo服务配置成系统服务。 使用命令如下&#xff1a; mongod --dbpathg:/mongo/data --logpathg:/mongo/mongo.log --install 在Mongo中就三…