摘要:
一、对象的生存期 对于 static 对象和自动对象,它们都有着严格定义的生存期。 全局对象:在程序启动时分配,在程序结束时销毁。 局部自动对象:在对象定义语句时分配,在离开块时销毁 局部 static 对象:在对象定义语句时分配,在程序结束时销毁 对于动态分配对象,其生存期与它们在哪里创建是无关的 阅读全文
摘要:
13.1 拷贝构造函数:这样的一个构造函数,第一个参数是自身类类型的引用,且任何额外参数都有默认值 使用拷贝初始化的情况: 用=定义变量 将一个对象作为实参传递给一个非引用类型的形参 从一个返回类型为非引用类型的函数返回一个对象 用花括号列表初始化一个数组中的元素或一个聚合类中的成员 某些类类型对它 阅读全文
摘要:
q去 阅读全文
摘要:
一、特性 1. 这是一种标准库类型 2. 是两个指针相减的结果的类型(因为差值可能为负值,所以是一种带符号类型) 3. 和size_t一样,ptrdiff_t也是一种定义在<cstddef>头文件中的机器相关的类型 4. 示例:ptrdiff_t = end(arr) - begin(arr); 阅读全文
摘要:
一、特性 1. 使用数组下标的时候,通常将其定义为 size_t 类型 2. size_t 是一种机器相关的无符号类型 3. 它被设计得足够大,以便能表示内存中任意对象的大小 4. 定义在头文件<cstddef>中 二、拓展 容器内有自己定义的几个类型:iterator、size_type、valu 阅读全文
摘要:
12.1 b1和b2各包含4个元素,且这4个元素是b1和b2共享的。 更多:StrBlob的data成员是一个指向string的vector(即vector<string>)的shared_ptr,因此StrBlob的赋值不会拷贝vector的内容,而是多个StrBlob对象共享同一个vector对 阅读全文
摘要:
一、特性 单向链表,只支持单向顺序访问(不支持快速随机访问),是C++11标准新增的类型 可类比于数据结构——单(向)链表 1. 没有size操作 forward_list为了追求性能,省去了size操作 2. 没有反向容器的成员 c.rbegin() c.rend() c.crbegin() c. 阅读全文
摘要:
一、梳理 1. 容器 一些特定类型对象的集合 2. 顺序容器如何存储值 “顺序”不依赖于元素的值,而是与元素加入容器时的位置相对应 3. 有哪些顺序容器 4. 如何选择合适的容器 list/forward_list:需要在容器的中间插入或删除元素 deque:需要在头尾位置插入或删除元素 vecto 阅读全文
摘要:
一、特性 概述:固定大小数组,支持快速随机访问,不能添加/删除元素,是C++11标准新增的类型 1. array对象的大小是固定的 array不支持添加/删除元素 array不支持改变容器大小的操作(如resize()、reverse()等) 2. array具有固定大小 与内置数组一样,array 阅读全文
摘要:
11.1 map:存储关键字-值(key-value)对的容器,关键字起到索引的作用,值则表示与索引相关联的数据;关键字是唯一、有序存储的 vector:存储单一类型元素的容器;元素是按添加顺序存储的 11.2 list:频繁在任意处插入/删除元素但不要求有随机访问能力时 vector:在尾部插入/ 阅读全文
摘要:
一、维度 我们知道定义一个数组时,或者给出一个常量表达式作为数组的维度,或者省略维度(而是让编译器根据数组中元素的数目计算维度)。 1. 计算数组的维度 2. 阅读全文
摘要:
一、只读算法 1. find() 2. count() 3. accumulate 4. equal 二、写入算法 1. fill 2. fill_n 3. copy 4. replace 5. replace_copy 三、重排 1. sort 2. unique 3. stable_sort 四 阅读全文
摘要:
10.1 1 #include <iostream> 2 #include <fstream> 3 #include <iterator> 4 #include <vector> 5 #include <string> 6 #include <deque> 7 #include <list> 8 # 阅读全文
摘要:
9.1 (a):list,因为要频繁地进行任意位置的插入操作 (b):deque,因为只要在头尾位置进行插入/删除操作(相比于list,deque还支持快速随机访问) (c):vector,没有要求进行插入/删除操作 9.2 9.3 两个迭代器begin和end构成一个迭代器范围。 两条限制: 9. 阅读全文
摘要:
一、什么是操作系统 英文:Operating System,简称OS 简介:是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充 定义:一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合 身份:系统软件(但系统软件并不只有操作系统) 主要作用:管理 阅读全文
摘要:
一、关键点 头文件 fstream 定义了三个类型来支持文件IO:ifstream、ofstream、fstream 其实上面三个类型就是类,这些类为了管理与流关联的文件,而定义了好多相关的操作: 接受一个 iostream 类型引用(或指针)参数的函数,可以用一个对应的fstream(或sstre 阅读全文
摘要:
8.1&&8.2 1 #include <iostream> 2 #include <vector> 3 #include <string> 4 5 using namespace std; 6 7 istream &func(istream &is) 8 { 9 int val; 10 while 阅读全文
摘要:
一直很难理解返回引用:返回哪个对象的引用?返回的引用如何使用? 一、返回值 1. 示例: 2. 解读:此函数返回变量 a 的值时,要产生一个临时变量保存 a 的值,又因为临时变量的生命周期是短暂的,所以该函数的返回结果不能作为左值。 3. 运用:返回值的函数只能作为右值使用,且看下面: 二、返回类型 阅读全文
摘要:
7.1 1 #include <iostream> 2 #include <vector> 3 #include <cctype> 4 #include <string> 5 #include <iterator> 6 #include <initializer_list> 7 #include < 阅读全文
摘要:
1.20 头文件: 1 #ifndef SALESITEM_H 2 // we're here only if SALESITEM_H has not yet been defined 3 #define SALESITEM_H 4 5 // Definition of Sales_item cla 阅读全文
摘要:
一、函数指针 1. 函数类型:由它的返回类型和形参类型共同决定(与函数名无关) 2. 示例: 该函数的函数类型为:int (int, int) 3. 声明一个指向函数的指针:int (*pf)(int, int); 4. 函数名:作为一个值来使用时,该函数自动转换成指针 5. 为函数指针赋值:pf 阅读全文
摘要:
一、数组的引用 切入:可以将一个变量定义成数组的引用(这个变量和数组的类型要相同) 形式: 解读:注意上面代码中的形式,因为arr引用了数组odd,故arr变成了数组的别名。 二、数组的引用——作为形参 难点:对应形参/实参的写法、怎么运用该形参 写法: 1 #include <iostream> 阅读全文
摘要:
一、概述 函数不能数组,但是可以返回数组的指针。 由于定义一个返回数组的指针的函数比较烦琐(即使定义了也很难看懂),所以我们要介绍一些简化方法。 二、使用类型别名 方法: 注:是数组的别名! 于是我们可以这样定义函数: 解读:func函数返回数组的指针,也即返回一个指向包含10个整数的数组的指针。 阅读全文
摘要:
要入门 Windows 编程,最重要的不是阅读什么教材,使用什么工具,而是先必须把以下几个对于初学者来说非常容易困惑的重要概念搞清楚: 1. 文字的编码和字符集。这部分需要掌握 ANSI 模式和 Unicode 模式的区别(并且明白这里 ANSI 和 Unicode 事实上都属于术语的误用);明白这 阅读全文
摘要:
一、关键点 目的:一个函数,可以处理不同数量实参 方法:initializer_list形参、可变参数模板、省略符形参 二、initializer_list形参 适用于:可变数量的实参部分的类型相同 简介:initializer_list是一种标准库类型,用于表示某种特定类型的值的数组 特点:模板类 阅读全文