如何正确的通过 C++ Primer 学习 C++?(转自知乎)

  

作者:dawnmist
链接:https://www.zhihu.com/question/32087709/answer/54936403
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

个人经验,C++ primer 第一次可以跳着看。关键是要尽快用起来,在使用中熟练,而不是在细节中迷失。
以C++ Primer第五版为例,第一遍读的时候:
Part1也就是前七章,除了6.6,6.7节,都要通读。尤其是第三章初步介绍了vector和string,简直就是新手福音,搞定这两个容器就能写一些简单的程序。
Part2基本就是数据结构和算法,如果有基础读起来很轻松。
9,11两章介绍的容器,以及12.1节的智能指针要通读。多用智能指针和容器,远离segment fault. 第10章里的泛型算法可以慢慢读,读完以后可以写出高逼格的函数式风格C++。12.2节讲了怎么用new和delete分配空间,题主作为新手,知道这种写法就行,写程序时尽量用容器代替原始数组,尤其是代码里最好不要有delete。
Part3是块硬骨头,标题就是Tools for Class Authors. 作为一个"class user",有些部分第一次是可以略过的。
13章很重要,要细读。初始化,复制,赋值,右值引用是C++里很微妙很重要的部分,别的语言对于这些概念很少有区分得这么细的。这一章不但要精读,还要完全掌握。
14章的操作符重载第一次可以观其大略;14.9节第一次可以跳过。
15章讲OOP,重要性不言而喻。如果之前一点概念都没有,学起来会觉得比较抽象。网上关于OOP有很多通俗有趣的文章,可以一起看看。
16章讲泛型编程,第一次读16.1节,掌握最基本的函数模板和类模板就行了。
Part4就更高档了,很多内容第一次就算啃下来,长久不用又忘了。第一次读推荐把18.2节读懂,命名空间简单易用效果好。别的内容可以观其大略,用时再看。17.1节的tuple是个有趣的东东,可以读一读。17.3节的正则表达式和17.4节的随机数也许有用,也可以读一读。如果需要读写文件,要读一下17.5.2节的raw I/O和17.5.3节的random I/O。

最后给题主的建议是,写C++,要尽量避免C的写法。用static_cast而不是括号转换符;用vector而不是C里面的数组;用string而不是char *;用智能指针而不是原始指针。当然I/O是个例外,printf()还是比cout好用的;转换数字和字符串时sprintf()也比stringstream快
作者:匿名用户
链接:https://www.zhihu.com/question/32087709/answer/55497335
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

对于工程性、技术性的知识,没有实践的感性认识作为基础,读也读不懂。那么问题来了,没有实践就没法读懂,没法读懂自然也就没法去做正确且高质量的实践,问题似乎进入了一个死循环。

学习东西最怕不知道学的东西有什么用处,只要是这样,多半会半途而废。而个问题的深层次原因就是上面说的。

要想打破这个死循环,你唯一能做的就是调整心态,然后读一点就实践一点,一点一点的往前挪。这是学习任何新知识所必需的“痛苦”经历。在这里我给你几点建议,帮助你尽可能的减轻“痛苦”,让你起码能有一个开始:

1.第一遍要通读,而且可以不求甚解,但必须读的有速度,不要在不懂的地方过多的停留,不要试图在第一遍的时候就搞懂所有细节。假如读到后面需要前面的知识,但是又忘记了,可回头看,也可不回看。很多人想用c++ primer学习c++,但是第一遍都没读完就放弃了。

2.接上条。读第一遍的目的是让你知道c++都有什么东西,先混个脸熟,等日后见到一些比较高级的特性心里不会发慌。

3.调整心态,不要急于求成,除非你已经拥有了丰富的编程经验,否则一个假期不可能到达熟练掌握c++的程度。要认清这一点,遇到挫折了不要怀疑自己,大家都是这么过来的。

4.c++不是一门可以边学边干的语言,里面坑很多,要是一知半解就去用,很可能掉坑里了还不知道。

5.如果觉得c++ primer太厚,可以读读作者写的另外一本:Essential C++ (豆瓣)。

6.关于书上的习题,第一遍看的时候可以不做。原因是做习题就会陷入到细节中,学任何东西过早的陷入细节都不是好事情。凡是过早陷入细节的,很少有能坚持到最后的。

转载于:https://www.cnblogs.com/deali/articles/5932511.html

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

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

相关文章

Androidstudio连mysql_MySQL数据库之Android Studio使用JDBC远程连接mysql的注意事项(附示例)...

本文主要向大家介绍了MySQL数据库之Android Studio使用JDBC远程连接mysql的注意事项(附示例) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。JDBC为java程序访问各种类型的关系型数据库提供了统一的接口,用户不必针对不同数…

纪中2016.10.6比赛不明总结

100<分数<310 ———————————————————————————————————— 期望值&#xff1a; |T1&#xff1a;100/T2&#xff1a;10/T3&#xff1a;100/T4&#xff1a;100 ————————————————————————————————————…

zendstudio快捷键收录

360截屏快捷键&#xff1a;ctrlshiftxzendstudio:注释代码&#xff1a;ctrlshift/删除光标所在行&#xff1a;ctrlD复制当前行&#xff1a;ctrlalt↓上下行互换:alt↑/↓代码格式化&#xff1a;CtrlshiftF&#xff0c;缩进&#xff1a;tab代码折叠快捷键&#xff1a;Ctrl/(小键…

centos8.2安装mysql_centos8安装mysql

通过以root用户或者具有sudo特权的用户身份使用CentOS软件包管理器(dnf)来安装MySQL 8.0# dnf install mysql安装好后&#xff0c;这里注意需要修改两个文件的权限&#xff0c;否则启动失败。# chown -R mysql:mysql /var/run/mysqld# chmod -R 777 /var/lib/mysql设置为开机自…

dedecms代码研究三

上次&#xff0c;我们从dedecms的index.PHP文件中了解到了很多信息&#xff0c;也提出了一些问题&#xff1a; 1&#xff09;加载了/include/common.inc.php&#xff0c;里面做了哪些工作&#xff1f;2&#xff09;/include/arc.partview.class.php到底是干什么的&#xff0c;/…

idea快捷操作_IDEA插件系列 快捷键神器!Key Promoter X

今天起&#xff0c;会陆续给大家介绍一些IDEA的插件。正所谓工欲善其事必先利其器&#xff0c;一款好的插件可以帮我们提升开发效率&#xff0c;或者提升使用IDEA的幸福感&#xff01;今天要推荐的第一款插件 Key Promoter X 。相信很多新手甚至老手&#xff0c;对IDEA中的快捷…

《开讲啦》 20160910 颜宁:女科学家去哪儿了?

视频地址&#xff1a; 《开讲啦》 20160910 颜宁&#xff1a;女科学家去哪儿了&#xff1f; 果然是女神科学家&#xff0c;讲了一些我很感兴趣的东西&#xff0c;让我也体会到了女神的气质&#xff0c;有点感触&#xff0c;这个节目不错&#xff0c;可以追。 颜宁教授于2016年5…

if __name__ == __main__:什么意思_秒懂Python编程中的if __name__ == 'main' 的作用和原理...

来源&#xff1a;菜鸟分析 链接&#xff1a;https://zhuanlan.zhihu.com/p/34112508一天偶然发现知乎上有篇关于对python编程中的if __name__ main的理解陈述&#xff0c;看完之后&#xff0c;自己觉得不够简单明了&#xff0c;于是在其文章底部写了一句话&#xff0c;突然收获…

4.openstack之mitaka搭建glance镜像服务

部署镜像服务 一&#xff1a;安装和配置服务 1.建库建用户 mysql -u root -p CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO glancelocalhost IDENTIFIED BY 密码; GRANT ALL PRIVILEGES ON glance.* TO glance% IDENTIFIED BY 密码; flush privileges; 2.keys…

mysql php 变量赋值,在MySQL UPDATE(PHP / MySQL)中使用变量

I am using this code so I can update a record in database:$query mysql_query("UPDATE articleSET com_count ". $comments_countWHERE article_id .$art_id ");My question is: How can I use variables in a MySQL UPDATE statement.解决方案$query m…

mongodb 教程一

mongodb是nosql&#xff08;not only sql&#xff09;的一种方式 。是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL - 代表着不仅仅是SQL- 没有声明性查询语言- 没有预定义的模式-键 - 值对存储&#xff0c;列存储&#xff0c;文档存储&#xff0c;图形数据库- 最…

java mysql 回滚_Java 中对数据库操作时的 回滚

Connection connnull;conn.rollback()就可以回滚//用jdbc连接数据库//举例子&#xff0c;比如你在写一个级联删除的方法的时候&#xff0c;为了保证数据完整性&#xff0c;删除的时候一定要确定该删的都删了才行&#xff0c;否则就要回滚&#xff0c;下面是删除方法的例子&…

向文件中追加内容

#echo abcbedf>>a.txt 将abcdef追加到a.txt文件末尾 往文件中写入内容&#xff0c;比如原来的a.txt文件内容是aaaaa&#xff0c; #echo bbbbb>a.txt&#xff0c;这个是bbbbb把a.txt原来的内容替换 这里注意 >是覆盖&#xff0c;>>是追加。 如果为多行输入,需…

kali linux改中文_【亲测实验】kali linux 2020 设置为中文方法

kali 2020.1可用进入我们的正题&#xff0c;修改为中文的步骤1.更换更新源打开终端&#xff0c;输入下边命令打开更新源的文件vim /etc/apt/sources.list在文件结尾加入下边更新源#中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contribdeb-src http:…

php取整函数ceil,floor,round,intval函数的区别

1、ceil — 进一法取整说明float ceil ( float $value )返回不小于 value 的下一个整数&#xff0c;value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float&#xff0c;因为 float 值的范围通常比 integer 要大。ceil() 例子 <?php echo ceil(4.3); // 5 echo ceil…

mysql的源码目录_Mysql DBA系统学习(2)了解mysql的源码目录及源文件

了解mysql的源码目录包括客户端代码&#xff0c;服务端代码&#xff0c;测试工具和其他库文件Bdb 伯克利DB表引擎BUILD 构建工程的脚本Client 客户端Cmd-line-utils 命令行工具Config 构建工程所需的一些文件Dbug Fred Fish的调试库Docs 文档文件夹Extra 一些相对独立的次要的工…

开始我的blog之旅

这是我第一次开始写blog的时刻&#xff0c;我也想好了怎么开始&#xff0c;鉴于我喜欢刨根问底的原则&#xff0c;我决定要翻开C语言&#xff0c;重新复习。同时以写blog的形式来印证。 写作路线嘛&#xff0c;就按照《C Primer Plus》第五版的章节套路来&#xff0c;中间在参杂…

ubuntu 破解mysql密码_Ubuntu下忘记MySQL root密码解决方法

Linux下忘记MySQL root密码解决方法忘了mysql密码&#xff0c;从网上找到的解决方案记录在这里。编辑mysql的配置文件/etc/mysql/my.cnf&#xff0c;在[mysqld]段下加入一行“skip-grant-tables”121201191255521.png重启mysql服务ubuntu:~$ sudo service mysql restartmysql s…

面向对象编程其实很简单——Python 面向对象(初级篇)

在Python教学中发现&#xff0c;很多同学在走到面向对象编程这块就开始蒙圈了&#xff0c;为了帮助大家更好的理解面向对象编程并其能将其用到自己的开发过程中&#xff0c;特写此文。 概述 面向过程&#xff1a;根据业务逻辑从上到下写垒代码 函数式&#xff1a;将某功能代码…

nginx mysql双机热备_MYSQL双机热备

mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步&#xff0c;主从模式&#xff0c;互相备份模式的功能&#xff0c;该功能可将一个数据库的工作量分摊于多个Mysql服务器之上&#xff0c;但考虑到种种因素&#xff0c;不要使用过多的同步服务器。最…