合集-《C++ Primer》学习笔记
摘要:《C++ Primer》作为久负盛名的 C++经典教程,其优秀的教学方式让笔者收获匪浅。 接下来的时间里,笔者会陆续更新自己在学习 C++路途上的一些心得、笔记,希望对您有所帮助。 C++ Primer 练习代码和练习题答案已经推送到 Githhub 上。 就此开始吧 ! 勘误 P352 “可变la
阅读全文
摘要:# 第一章 开始 ## 前言 介绍大部分C++的基础内容:类型、变量、表达式、语句及函数。简单介绍如何编译及运行程序。 编写一个简单的程序,如编写记录书籍信息的程序,其必然包括一下内容: - 定义变量 - 进行输入与输出 - 使用数据结构保存数据 - 检测两条记录是否存在相同的ISBN - 循环处理
阅读全文
摘要:# 第二章 变量和基本类型 ## 前言 数据类型是程序的基础:它告诉我们数据的意义以及我们能在数据上执行的操作。 ## 2.1 基本内置类型 C++定义了包括**算术类型**(arithmetic type)和**空类型**(void)在内的基本数据类型。 ### 2.1.1 算术类型 算术类型分为
阅读全文
摘要:第三章 字符串、向量和数组 前言 标准库是C++必不可少的一部分,作为C++的延伸,标准库的优雅令人陶醉。 如标题所言,在这一章我们将要学习数组、字符串和向量。若学习过其他编程语言,相信对数组并不陌生。其作为固定存储序列,能够为我们提供很多数据结构的解决思路,但是其在灵活性方面的不足使之诞生向量:向
阅读全文
摘要:# 第四章 表达式 ## 前言 本章主要介绍:语言本身定义、并用于内置类型运算对象的运算符。简单介绍:几种标准库定义的运算符。 表达式本身由一个或多个**运算对象**组成,其目的是得到一个结果。 表达式的结构:value operator n*\(operation object) 通过运算符将一个
阅读全文
摘要:# 第五章 语句 ## 前言 通常情况下,程序是按照顺序执行。但是仅仅依靠顺序执行无法解决一些复杂问题,所以C++提供一组*控制流* (flow-of-control)语句支持更加复杂的执行路径。 ## 5.1 简单语句 简单语句的三种语句: ```cpp value+5; /* 表达式语句 */
阅读全文
摘要:# 第六章 函数 ## 前言 何谓函数? 函数就是命了名的代码块😄。通过调用函数执行对应代码,实现目标效果。函数可以通过重载的方式,实现同一个名字多种实现。 介绍: - 函数的定义 - 函数的声明 - 重载函数 - 编译器如何选择与之匹配的函数版本 ## 6.1 函数基础 典型的函数: ```cp
阅读全文
摘要:# 第七章 类 ## 前言 基本数据类型有时候并不能解决某些特定问题,而通过自定义的类就可以通过理解问题概念,使得程序更加容易编写、调试和修改。 类的基本思想是**数据抽象**(data abstraction)和**封装**(encapsulation)。 数据抽象是一种依赖于**接口**(int
阅读全文
摘要:# 第八章 IO库 ## 前言 C++语言并不会直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO。这些类型支持从设备中读取数据、向设备写入数据IO操作。设备可以是文件、控制台窗口等,还有一些类型允许访问内存IO。 IO库定义了读写内置类型值的操作。 ## 8.1 IO类 在之前我们使用的
阅读全文
摘要:第九章 顺序容器 前言 本章是对第三章——字符串、向量和数组的扩展延伸,在第三章我们对标准库的顺序容器有一定了解,那么学习完本章我们对顺序容器的知识将会更加完整。 标准库定义了几种关联容器,关联容器中元素的位置由元素相关联的关键字值决定。我们将在本章对关联容器做一定了解,在第十一章将会介绍关联容器特
阅读全文
摘要:第十章 泛型算法 前言 在前面我们学习容器的时候,是否发现标准库下的对容器的操作并不是太多(或许,初学时已经觉得好多了😅),其实C++将大量的功能操作集成在泛型算法中。泛型(generic),即通用,意为其独立于任何特定的容器,操作于不同类型的容器和不同类型的元素。 回想一下,在学习顺序容器的过程
阅读全文
摘要:第十一章 关联容器 前言 关联容器和顺序容器有着本质的不同:关联容器中的元素是按关键字来保存和访问的。与之相对,顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。 关联容器支持高效的关键字查找和访问。两个主要的关联容器(associative-container)类型是map和set。 ma
阅读全文
摘要:第十二章 动态内存 前言 在此之前,我们使用的程序中对象都有着严格定义的生存期: 全局对象,在程序启动时分配,在程序结束时销毁。 局部自动对象,当进入定义所在程序时创建,在离开块时销毁。 局部static对象,在第一次使用前分配,在程序结束时销毁。 显然这存在限制,为此C++支持动态分配对象。动态分
阅读全文
摘要:第十三章 拷贝控制 前言 类是如何控制类型对象的拷贝、赋值、移动和销毁的?类通过一些特殊的成员函数控制,包括:拷贝构造函数、移动构造函数、拷贝赋值运算符、移动赋值运算符以及析构函数。 当定义一个类时,我们显式地或隐式的指定在此类型的对象拷贝、移动、赋值和销毁时做什么。一个类通过定义五种特殊的成员函数
阅读全文