第十三章 拷贝控制 拷贝控制操作(copy control): 拷贝构造函数(copy constructor) 拷贝赋值运算符(copy-assignment operator) 移动构造函数(move constructor) 移动赋值函数(move-assignement operator) 析构函数(destructor) 拷贝、赋值和销毁 直接初始化...
第十二章 动态内存 对象的生命周期: 全局对象在程序启动时分配,结束时销毁。 局部对象在进入程序块时创建,离开块时销毁。 局部static对象在第一次使用前分配,在程序结束时销毁。 动态分配对象:只能显式地被释放。 对象的内存位置: 静态内存用来保存局部static对象、类static...
1. set 与 map void test1101(){ map<string,size_t> map; set<string> set = {"a","and","so","unh.."}; string word; while (cin>>word){ if (set.find(word) == s...
第十章 泛型算法 泛型算法 因为它们实现共同的操作,所以称之为“算法”;而“泛型”、指的是它们可以操作在多种容器类型上。 泛型算法本身不执行容器操作,只是单独依赖迭代器和迭代器操作实现。 头文件: #include <algorithm>或者 #include <numeric>(算数相关) 大多数算法是通过遍历两个迭代器标记的一段元素来实现其功...
第九章 顺序容器 顺序容器概述 顺序容器(sequential container):为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。 顺序容器类型 容器类型 介绍 vector 可变大小数组。支持快速随机访问。在尾部之外的...
第五章 语句 简单语句 表达式语句:一个表达式末尾加上分号,就变成了表达式语句。 空语句:只有一个单独的分号。 复合语句(块):用花括号 {}包裹起来的语句和声明的序列。一个块就是一个作用域。 条件语句 悬垂else(dangling else):用来描述在嵌套的if else语句中,如果if比else多时如何处理的问题。C++使用的方法是else匹配最近没有配...
第四章 表达式 表达式基础 运算对象转换:小整数类型会被提升为较大的整数类型 重载运算符:当运算符作用在类类型的运算对象时,用户可以自行定义其含义。 左值和右值: C中原意:左值可以在表达式左边,右值不能。 C++:当一个对象被用作右值的时候,用的是对象的值(内容); 被用做左值时,用的是对象的身份(在内存中的位置)。 ...
第三章 字符串、向量和数组 //string 遍历问题 void test45(){ string str = "hey xx"; // 1. 普通for循环 for (const auto &item : str){ cout << item << endl; } // 2.迭代器 auto b...
第二章 变量和基本类型 基本内置类型 基本算数类型: 类型 含义 最小尺寸 bool 布尔类型 8bits char 字符 8bits wchar_t 宽字符 ...
第七章 类 (Class) 定义抽象数据类型 类背后的基本思想:数据抽象(data abstraction)和封装(encapsulation)。 数据抽象是一种依赖于接口(interface)和实现(implementation)分离的编程技术。 类成员 (Member) 必须在类的内部声明,不能在其他地方增加成员。 成员可以是数据,函数,类型别名。 类的...