C++ Primer 5th学习笔记
此专栏为记录自己学习C++ Primer 5th笔记,欢迎大家学习讨论
会飞的鱼zhh
这个作者很懒,什么都没留下…
展开
-
C++ Primer 5th学习笔记1 变量和基本类型
1、变量 类型转换转换的过程:非bool型的算术值赋值给bool类型,初始值为0则结果为false,否则结果为truebool赋值给非bool,初始值为false时,结果为0;初始值为true,结果为1 cpp语言规定的转义序列:名称符号名称符号名称符号换行符\n横向指标符\t报警符\a纵向制表符\v退格符\b双引号\"...原创 2019-03-10 21:19:46 · 143 阅读 · 0 评论 -
C++ Primer 5th学习笔记2 字符串、向量和数组
一、字符串、向量、数组1 标准库类型string 标准库类型string表示可边长的字符序列,使用时必须先包含string头文件#include <string>,文件中还需要声明using std::string;1.1 定义和初始化string对象eg声明形式描述string s1默认初始化,s1是一个字符串string s2(s1)s2是...原创 2019-03-10 21:22:35 · 157 阅读 · 0 评论 -
C++ Primer 5th学习笔记3 表达式
1、算术运算符运算符功能描述+一元正号+ expr-一元负号- expr*乘法expr * expr/除法expr / expr%求余expr % expr+加法expr + expr-减法expr - expr 上述运算符的优先级中,由上往下,一元运算符优先级最高,其次是乘除运算,最后是加减运算,所有...原创 2019-03-18 12:54:40 · 167 阅读 · 0 评论 -
C++ Primer 5th学习笔记4 异常语句
语句try语句块和异常处理 C++语言中,异常处理包括以下几种:throw表达式,异常检测部分使用throw表达式,来表示程序遇到了无法处理的问题。try语句块(try block),异常处理部分使用try语句块处理异常,try语句块以关键字key开始,并以一个或多个catch子句结束。一套异常类,用于在throw表达式和相关catch子句之间传递异常的具体信息。1、try语句块...原创 2019-03-18 12:57:03 · 158 阅读 · 0 评论 -
C++ Primer 5th学习笔记5 函数
函数1 函数基础 自动对象:只存在于块执行期间的对象,当块的执行结束后,块中创建的自动对象的值就变成未定义的。 局部静态对象:在程序的执行路径第一次经过对象定义语句初始化后,直到程序终止才被销毁,对象所在的函数结束执行也不会影响该变量。将局部变量定义成static类型即可变成局部静态对象2 参数传递 引用传递:形参是引用类型 值传递:实参的值被拷贝给形参时2.1 传引用参数...原创 2019-03-25 09:07:35 · 147 阅读 · 0 评论 -
C++ Primer 5th学习笔记6 类
类 类的基本思想是数据抽象和封装,类的接口包括用户所能执行的操作;类的实现包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。1 定义抽象数据类型 从改进的Sales_data开始,其结构如下图所示:struct Sales_data{ std::string isbn() const {return bookNo; } Sales_data&...原创 2019-03-30 15:46:23 · 175 阅读 · 0 评论 -
C++ Primer 5th学习笔记7 IO库
IO库1 IO类常用的IO库类型和头文件如下表:头文件类型iostreamistream,wistream从流读取数据ostream,wostream 向流写入数据iostream,wiostream 读写流fstreamifstream,wifstream 从文件读取数据ostream,wofstream 向文件写入数据fstr...原创 2019-03-25 09:10:49 · 193 阅读 · 0 评论 -
C++ Primer 5th学习笔记8 顺序容器
顺序容器1 顺序容器概述顺序容器类型 名称描述vector可变大小数组,支持快速随机访问。在尾部之外的位置插入元素或删除元素可能很慢deque双端队列,支持快速随机访问。从头尾位置插入/删除速度很快list双向链表,只支持双向顺序访问。在list中任何位置进行插入和删除操作速度都很快forward_list单向链表,只支持单向顺序访问。在任何位...原创 2019-03-30 15:56:50 · 283 阅读 · 0 评论 -
C++ Primer 5th学习笔记9 泛型算法
泛型算法1 初识泛型算法 大多数算法都定义在algorithm,其中头文件numeric中定义了一组数值泛型算法。算法永远不会执行容器的操作,即永远不会改变底层容器的大小。只读算法 只读算法:只读取其输入范围内的元素,而不改变元素。例如:find,accumulate。accumulate定义在头文件中,接受三个参数。调用示例://对vec中的元素求和,和的初始值是0int n...原创 2019-04-04 18:32:17 · 218 阅读 · 0 评论 -
C++ Primer 5th学习笔记10 关联容器
关联容器1 使用关联容器 关联容器支持高效的关键字查找和访问,两个主要的关联容器类型是map和set。map中的元素是关键字-值(key-value)对:关键字起到索引作用,值则表示与索引相关联的数据。set中每个元素只包含一个关键字,set支持高效的关键字查询操作——检查一个给定的关键字是否在set中 标准库提供8个关联容器,如下表格所示。类型map和multimap定义在头文件ma...原创 2019-04-04 18:45:11 · 183 阅读 · 0 评论 -
C++ Primer 5th学习笔记11 动态内存
动态内存1 动态内存和智能指针 在C++中,动态内存的管理是通过一对运算符来完成的:new,在动态内存中为对象分配空间并返回一个指向该对象的指针。delete则是接受一个动态对象的指针,销毁该对象,并释放与之相关联的内存。 动态内存的使用很容易出问题。若忘记释放内存,则会产生内存泄露;若在尚有指针引用内存的情况下就释放内存,则会产生引用非法内存的指针。 因此新标准库提供了两种智能指...原创 2019-04-04 18:48:48 · 236 阅读 · 0 评论 -
C++ Primer 5th学习笔记12 拷贝控制
拷贝控制1 拷贝、赋值与销毁 拷贝控制操作:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符和析构函数。1.1 拷贝构造函数 若一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。示例如下:class Foo{ public: Foo(); //默认构造函数 Foo(const Foo&...原创 2019-04-14 20:04:18 · 290 阅读 · 0 评论 -
C++ Primer 5th学习笔记13 操作重载与类型转换
操作重载与类型转换1 基本概念 重载运算符是具有特殊名字的函数:其名字由关键字operator和其后要定义的运算符号共同组成。可以被重载的运算符如下:运算符符号符号符号符号符号符号+-*/%^&|~!,=<><=>=++--<<>>==!=&am...原创 2019-04-14 20:08:37 · 209 阅读 · 0 评论 -
C++ Primer 5th学习笔记14 面向对象程序设计
文章目录面向对象程序设计1 OOP概述2 定义基类和派生类2.1 定义基类2.2 定义派生类2.3 类型转换与继承3 虚函数4 抽象基类5 访问控制与继承6 继承中类作用域7 构造函数与拷贝控制7.1 虚析构函数7.2 合成拷贝控制与继承7.3 派生类的拷贝控制成员7.4 继承的构造函数8 容器与继承面向对象程序设计1 OOP概述 面向对象程序设计的核心思想是数据抽象,继承和动态绑定。通过...原创 2019-05-07 09:37:45 · 247 阅读 · 0 评论 -
C++ Primer 5th学习笔记15 模板与泛型编程
模板与泛型编程1 定义模板1.1 函数模板 类型参数前必须使用关键字class或typename,示例如下:template<typename T> T valc (const T&, const T&);template<class U> U valc (const U&, const U&);template<ty...原创 2019-04-27 18:46:11 · 221 阅读 · 0 评论 -
C++ Primer 5th学习笔记16 标准库特殊设施
标准库特殊设施1 tuple类型 tuple是类似pair的模板,不同tuple类型的成员类型也不相同,但一个tuple可以有任意数量的成员tuple支持的操作操作描述tuple<T1, T2, ..., Tn> t;t是一个tuple,成员数为n,第i个成员的类型为Tituple<T1, T2, ..., Tn> t(v1, v2,...原创 2019-04-27 18:47:51 · 351 阅读 · 0 评论