C++ primer 个人学习总结
欢迎大家来访二笙的小房子,一同学习分享生活!
文章目录
- 1. 个人见解:C++
- 2. primer学习总结
- 2.1 第一章:开始
- 2.2 Part1:C++基础
- 2.3 Part2:C++标准库
- 2.4 Part3:类设计者的工具
- 2.5 Part4:高级主题
- 3. future
1. 个人见解:C++
先来说说对C++的感觉吧,由于个人不是特别热爱学习的那种,自律性也比较差,加之上学期才刚接触C++,于是在经过一个学期的cpp学习,对C++才属于那种略有了解的程度,但即便如此也能感受到C++的强大,就这样,在暑假的时候就决定走cpp方向,买了这本经典书籍开始了学习之旅。
2. primer学习总结
经过大概三个月的学习差不多将这本书看完,每一章节都有认真的看。对于我来说,在读完一本经典书籍如果没有自己的一点收获都不好意思说自己阅读过此书;庆幸,阅读此书之后,终是有了自己的一点收获,相比于在阅读之前只能说对于C++的理解上了一层台阶,如果说现在对于C++是初步了解,那么之前可能只能称之为入门。下面就primer此书的几个部分谈一谈个人见解:
2.1 第一章:开始
对于此章,大多在学习本书之前都基本了解,相当于给有点C++基础的同学的回顾,当然也学到了一点新知识(以前课堂教学未了解到的),就 读取数量不定的输入数据,了解到了输入放在循环中如何有效的读取多个数据(现在看来非常的基础),对于while (cin >> value)
,当输入的值输入错误、遇到文件结束符或无效输入时结束,get到这一新知识点,第一章也就差不多了。
2.2 Part1:C++基础
对于这一部分,大多也是比较基础的东西,除了这些之外还是有些比较细节的东西,在面试时也经常被问到,所以某些知识点还是需要仔细分析的
- 在这一部分初次出现的C++11新标准中新添加的右值引用
- 指针概念的复习与回顾
- const限定符的使用(其中顶层const与底层const的区别)
- constexpr以及常量表达式
- 还有以前未曾接触到的auto与decltype类型指示符
- 以前稍有些了解但不深入的vector(后续章节有深入提及)
- 一些常用的运算符(++i与i++的区别)
- try语句块与异常处理(后续章节有深入提及)
- 处理命令行选项的main:形如
int main(int argc, char **argv)
- 委托构造函数、聚合类与字面值常量类等,这些知识点在我看来以前不是很熟悉在阅读完一遍之后了解了,再重新回顾的时候需要重点查看的一些知识点(之后几个部分的总结也类似)
2.3 Part2:C++标准库
这一部分与下一部分在我看来是整本书的核心部分,特别特别的重要!!!对于其中的很多知识点都需要理解与掌握,其中泛型算法部分对于数据结构与刷题会有很大的帮助(亲测)
- IO类中的三个主要头文件:iostream、fstream以及sstream,对于文件与字符串的处理尤有帮助
- 顺序容器:vector、deque、list、forward_list、array以及string和关于这些顺序容器的基本操作(其中“vector对象是如何增长的”这一节有助于理解vector的实现)
- string的查找操作和与数值之间的转换操作对于数据结构中处理字符串有着奇效
- 泛型算法、
lambda表达式
以及bind函数也许能让你解题快人一步 - 关联容器map与set以
RB-tree
为底层机制,之后衍生出来的hash_set与hash_map以hashtable
为底层机制,这些也是面试常问的 - 动态内存的管理以及智能指针的应用,shared_ptr、unique_ptr与weak_ptr在类中的应用
- 动态数组与allocator类
2.4 Part3:类设计者的工具
类是C++的核心工具,这一部分将从类的各个部分讲解,看完并理解此部分能够对类有更深的理解!同时此部分还包含了模板编程这一C++重要特性!应该重点掌握
- 拷贝构造函数、移动构造函数(右值引用)以及动态内存管理类
- 类中函数运算符,重载运算及类型转换(注意避免重载的二义性)
- 面向对象程序设计(数据抽象,继承和动态绑定)
- 其中虚函数是一个重中之重的点,一定要掌握
- 几乎贯穿全书的
文本查询程序
,了解与理解其实现是很有必要的 - 模板是泛型编程的基础,从这句话就能知道这章有多重要了!!!
- 模板这章比较重要的知识点:类模板与函数模板,move的理解与转发
2.5 Part4:高级主题
这一部分对于目前来说可能不会有太大的用处,但以后毕竟走cpp方向(对于想要走着方向的肯定早晚都得看的)所以先粗略学习了一遍。第十九章虽然可能不太常用,但面试时问到这方面的频率很高!!
- tuple类型,当用于返回多个值(不同类型)时,适合使用tuple
- bitset类型,用于处理二进制位
- 正则表达式,一种描述字符序列的方法,是一种极其强大的计算工具(目前感觉正则表达式主要应用于各种爬虫,字符串匹配)
- 随机数,利用随机数引擎对象和分布对象组合的随机数发生器生成随机数(个人感觉比较好用)
- 利用一些操纵符改变流的状态输出特定格式的数据
- 异常处理的每个过程,try、throw和catch的步骤,noexcept异常说明符以及异常类的层次
- namespace命名空间,这个在很多大型工程项目中很常见
- 多重继承以及虚继承,作为重点需要仔细理解
- new和delete的工作原理,重载的new和delete以及malloc、free的应用,定位new表达式,这些我觉得都超级超级重要!!
- dynamic_cast与typeid运算符,实现运行时类型识别
- 枚举类型,enum
- 类中数据成员指针以及函数指针,理解与普通指针的区别
- union(联合类),匿名union应用比较广泛
- 位域(传递二进制数据)以及volatile限定符(对类型额外修饰)
- 链接指示:extern “C”(使用链接可以将C++代码与其他语言代码放在一起使用)
3. future
写博客不是目的,学会书中知识点、自己有收获才是最重要的!!!学习漫长无涯,就此倍加努力!!!
正在学习的你,一起加油吧!
C++ primer 个人学习总结相关推荐
- 如何利用《C++ Primer》学习C++?
<C++ Primer>作为久负盛名的C++经典教程,丰富的教学辅助内容.精心组织的编程示范,无论是初学者入门,或是中.高级程序员提升,都是不容置疑的首选. 一本好书只有读过才有价值,然而 ...
- 整理:C primer plus 学习笔记
前言:简单看了一遍C Primer Plus, 整理了一下,因为时间比较少,自己理解地比较肤浅,所以第一版比较简陋. 假期的时候应该会有时间再整理一下.------2018/11/5 2019/1/2 ...
- C++ Primer Plus 学习记录(第五章节-包含练习题答案)
C++ Primer Plus 学习记录(第五章节-包含练习题答案) 5.1 for循环 5.1.1 for循环的组成部分 1.for循环的组成部分所完成的步骤 2.赋值表达式有值 3.cout中显示 ...
- C++ Primer Plus 学习笔记(第 4 章 复合类型)
C++ Primer Plus 学习笔记 第 4 章 复合类型 数组 数组(array)是一种数据格式,能够存储多个同类型的值. 要创建数组,可使用声明语句.数组声明应指出以下三点: 存储在每个元素的 ...
- 《C++ Primer》学习笔记
这次一定要完整学完 2022/8/24 像编辑器一样思考和理解C++ C++的编程风格:C风格.基于对象.面向对象.泛型和基于组件. 初学建议<C++Primer>和<C++标准程序 ...
- C++ Primer Plus学习笔记之类和动态内存分配
前言 个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系. 一直以来都很想深入学习一下C++,将其作为自己的主力开发语言.现在为了完成自己这一直以来的心愿,准备 ...
- C++ Primer Plus学习笔记之函数探幽
前言 个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系. 一直以来都很想深入学习一下C++,将其作为自己的主力开发语言.现在为了完成自己这一直以来的心愿,准备 ...
- c++Primer再学习-练习Todo
1.习题10.25的扩展 要求: 读取本地文件,含有未读和已读及正在读的书籍名称,存放路径 从未读选择后,放入正在读的集合中,并从未读列表中删除 如果读完则放入已读列表中,并从正在读的集合中删除 每本 ...
- 090518-C++primer 4th学习笔记:1.3节
1.3 C++程序的注释 注释是为了帮助其他人读懂你的程序.注释一般用来简要概述一个算法,标明一个变量的用途,或者解释一段不容易读懂的程序段.注释会在被编译器忽略,所以不会增加可执行程序的大小. ...
- C++ Primer Plus学习(一)—— 基础知识
基础知识 预备知识 头文件名命名约定 名称空间/命名空间 C++源代码风格: 处理数据 变量名 位与字节 数据类型 为何float有效位数为7位 climits 初始化 整型 浮点数相对整型的优缺点 ...
最新文章
- 编程之美3.3 计算两个字符串的相似度
- 如果知道一个控件类型的对话框句柄是编辑框控件
- ArcGIS网络分析之构建网络分析数据集(一)
- Matlab中typecast函数由int8转换为int32
- 210305设计共享内存
- 作为服务器上的操作系统,作为服务器的操作系统
- 信息学奥赛C++语言:旅行
- 精选论文集:三维点云有哪些必读的论文?
- oracle group by 取最新的一条_大国智能制造全文免费阅读_大国智能制造最新章节_乌溪小道的小说...
- [Ext JS 7]ClassRequire错误解决
- idea一直在 downloading plugins for ... 失败
- 第一章 Visual Basic入门
- 【计算机网络】网络层 : 数据交换方式 ( 电路交换 | 报文交换 | 分组交换 )★
- matlab中ones()、inf用法
- unbuntu下gedit编辑花屏(重影 )问题解决
- poi创建excel表打不开——文件格式与扩展名不匹配
- c语言输入坐标三角形周长面积,3.1.7计算三角形周长和面积
- 手机上面正常显示网页大小
- 怎么用控制面板卸载软件?(简单 有图)
- visio添加外键约束