苦恼于Python运行时感人的速度,我决定学习C++。

为了激励我自己好好地学习这门未曾谋面的编程语言,我决定在此开设专栏:C++学习日记。希望在读者们的监督下,我可以早日掌握这门语言。当然,如果那位大佬愿意赐教,在下也是感激不尽。

2022年7月14日

由于懒得安装编译环境,我找了一个在线编程的网站。接着,我开始寻找教程学习C++(https://www.runoob.com上的教程还不错)。简介、环境设置(我都用在线编辑器了,自然是不需要环境设置的)懒得看,我便从《基本语法》一篇开始循着教程学习(顺带得有点实践,不是吗?)。

首先,是Python中从未谋面的头文件和命名空间:

#include <iostream>
using namespace std;

这能干什么,我真的看不太懂。但我想,既然C++每一个程序中都提及它们,那我们将其牢牢记下,在每个文件开头都照搬一遍似乎就可以。

C++第二个令我不适应之处在于,这里舍弃了缩进,而使用大括号表示语句块。并且,其每一语句结尾的分号也让我头疼。好在在Javascript中我已领教这一情况,因此总算没有激起太大波澜。

不得不说,C++的变量和函数令我感到头大。我们知道,Python的变量不需要指定类型,而在C++中,它需要提前定义,还要设置初始化!更有甚者,连函数的返回值竟也需要指定类型。再加上那看上去毫无意义的变量声明,以及各种复杂不说还带有修饰符的数据类型,我不尽一阵晕眩(还有存储类,那究竟有啥用啊)。

不过,舍弃那些晦涩难懂的用法,我总算是可以安然地设置一些我需要的变量了。

看到讲解运算符时,我不尽嘲笑教程的太过基础。直到……看到名为位运算符的一些操作。说实话,它们并不十分晦涩难懂,但令我置疑的是它的实用性。将一个数拆成二进制数,经过变换后重新转换回十进制——这个操作,我想都不敢想。通过拆解为二进制来解决问题,这根本不是正常能想到的思路。

循环和判断,这些基本的逻辑无疑是一个程序的支柱。也许由于兴趣,这是我今日学得最轻松的部分。这里的for,无疑与Python很不同,更加复杂,应用却更加广泛。do-while结构与goto语句也是给了我们更多发挥的空间——它们可以帮助我们更好地完成一些工作。而判断中的switch语句,也是让我眼前一亮:我曾数次在Python中用if-else来实现此判断,但显然,switch做得更快、更有效(但由于我对C++数据类型实在是使用不惯,还是传统if-else更适合目前的我使用)。

接着,我忍不住跳过大段的内容,转而去学习C++的输入和输出。我一直认为,输入输出乃是一个程序的灵魂,而C++的输入输出无疑是出类拔萃——至少令我满意。可以说,cout<<和cin>>即具有Python中print和input函数的简约(说是胜过Python也不为过),又有一种逻辑上层次分明的美感。

对于函数部分,我只粗略浏览,而匿名函数更是只字未动。这也许是由于这些内容过于繁复,但我认为更多的是海量的知识令我的兴趣渐渐磨灭。也罢,我便停下这第一天的学习,满满消化这些内容。我相信,明日,我将再次信心满满地踏上学习C++的征途。
第一期的C++学习日记到此要告一段落了。最后,一个小小的C++程序作为今日的成果:

#include <iostream>
using namespace std;
int main()
{
for(;;)
{
string digg = "是";
cout<<"您是否会点赞?(回答“是”就行啦!)"<< endl;
cin>>digg;
if(digg=="是")
{
cout<<"万分感谢!"<<endl;
break;
}
else
{
cout<<"请重新回答!"<<endl;
}
}
}

(持续更新中,敬请关注……)

C++学习日记:关于我决定开始学习C++的那些事的更多相关文章

  1. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  2. android学习日记05--Activity间的跳转Intent实现

    Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...

  3. android学习日记03--常用控件Dialog

    常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...

  4. android学习日记03--常用控件checkbox/radiobutton

    常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...

  5. android学习日记03--常用控件button/imagebutton

    常用控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件的一些简单而可见的功能.所有控件都是继承View类 介绍android原生提供几种常用的控件bu ...

  6. Zend Framework学习日记(2)--HelloWorld篇(转)

    Zend Framework学习日记(2)--HelloWorld篇 这一篇主要演示如何用zf命令行工具建立一个基于Zend Framework框架的工程,也是我初学Zend Framework的小练 ...

  7. Zend Framework学习日记(1)--环境搭建篇(转)

    Zend Framework学习日记(1)--环境搭建篇 (1)开发工具 Zend Framework框架:http://framework.zend.com/download/latest 包含2个 ...

  8. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

  9. 配置ssh免密码登录——集群学习日记

    度过了难熬的考试月时期之后,最近和小伙伴一起参加的的比赛进入了紧张的准备时期.在进行工作的时候,发现有很多基础的知识点,自己不是很清楚以及了解,所以在想,要不就边学习的时候边写下学习日记,以供自己后来 ...

  10. Hadoop-2.7.2集群的搭建——集群学习日记

    前言 因为比赛的限制是使用Hadoop2.7.2,估在此文章下面的也是使用Hadoop2.7.2,具体下载地址为Hadoop2.7.2 开始的准备 目前在我的实验室上有三台Linux主机,因为需要参加 ...

随机推荐

  1. XCTF练习题---WEB---robots

    XCTF练习题---WEB---robots flag:cyberpeace{6c4b08933075fc620d16d1157ee07a7e} 解题步骤: 1.观察题目,打开场景 2.打开实验场景, ...

  2. BigInterger && BigDecimal

    BigInterger BigDecimal

  3. Android8.0 后台服务保活的一种思路

    原文地址:Android8.0 后台服务保活的一种思路 | Stars-One的杂货小窝 项目中有个MQ服务,需要一直连着,接收到消息会发送语音,且手机要在锁屏也要实现此功能 目前是使用广播机制实现, ...

  4. 『现学现忘』Git基础 — 24、Git中查看历史版本记录

    目录 1.查看详细的历史版本记录 2.简化显示历史版本记录 3.历史版本记录常用操作 (1)指定查看最近几次提交的内容 (2)以简单图形的方式查看分支版本历史 (3)翻页与退出 4.查看分支相关的版本 ...

  5. CMake技术总结

    在做算法部署的过程中,我们一般都是用C++开发,主要原因是C++的高效性,而构建维护一个大型C++工程的过程中,如何管理不同子模块之间的依赖.外部依赖库.头文件和源文件如何隔离.编译的时候又该如何相互 ...

  6. mysql的命令二

    1.插入数据 格式一:insert into table_name valuse (字段1,字段2): insert test1 values ('wangsan',22,'male'); 格式二:i ...

  7. PPP PPOE详解

    PPP协议是在串行线IP协议SLIP(Serial Line Internet Protocol)的基础上发展起来的.由于SLIP协议具有只支持异步传输方式.无协商过程(尤其不能协商如双方IP地址等网 ...

  8. 使用Gitbook做笔记

    一.安装 https://github.com/GitbookIO/gitbook/blob/master/docs/setup.md # 通过npm全局安装 npm install gitbook- ...

  9. 好客租房56-props深入(3props校验-约束规则)

    1常见类型:Array,bool,func,number,object,string 2React:element 3必填项:isRequred 4特定结构的想:shape({}) //导入react ...

  10. 130_传析阅管理系统accdb64位版本

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 几年前笔者针对家居门店的进销存.人员管理.工资管理.任务系统.门店经营盈亏管理.销售分析.考勤请假等息息相关的业务基于Ac ...