修改image

This commit is contained in:
yinkanglong_lab
2021-03-13 22:30:44 +08:00
parent 1371fc7d60
commit fbd2a369b3
271 changed files with 211 additions and 1134 deletions

View File

@@ -114,7 +114,7 @@ int j;//声明并定义了,申请了兑现该控件
### 标识符与关键字。
![](2021-03-03-17-45-17.png)
![](image/2021-03-03-17-45-17.png)
### 作用域
@@ -185,7 +185,7 @@ int \*\*p2 = &p1
- const 的值是常量表达式,则直接在头文件中定义`const a = 3*5`include 这个头文件就能使用 const a 的值。
- const 的初始值通过函数计算得出不是常量表达式const 变量需要在不同的文件间共享,需要在头文件中 extern 声明,在 cpp 文件中进行定义。
![](2021-03-04-10-42-02.png)
![](image/2021-03-04-10-42-02.png)
### const 引用
@@ -205,7 +205,7 @@ const int &r2 =i;
const double * cptr = π
```
![](2021-03-04-10-48-02.png)
![](image/2021-03-04-10-48-02.png)
- 指向非常量的“指向常量的指针”

View File

@@ -21,9 +21,9 @@ using namespace
### 定义和初始化 string 对象
![](2021-03-04-11-40-28.png)
![](image/2021-03-04-11-40-28.png)
![](2021-03-04-11-41-01.png)
![](image/2021-03-04-11-41-01.png)
- 默认初始化
- 直接初始化
@@ -32,7 +32,7 @@ using namespace
### string 对象上的操作
![](2021-03-04-11-43-30.png)
![](image/2021-03-04-11-43-30.png)
### 处理 string 对象中的字符
@@ -62,7 +62,7 @@ using namespace
### 定义和初始化 vector 对象
![](2021-03-04-14-18-52.png)
![](image/2021-03-04-14-18-52.png)
- 直接初始化。不适用等号,而是使用{}
- 复制初始化。使用等号,进行初始化
@@ -82,7 +82,7 @@ using namespace
### 其他 vector 操作
![](2021-03-04-14-38-39.png)
![](image/2021-03-04-14-38-39.png)
- 使用下表访问 vector 元素的索引
- 不能使用下标形式向 vector 中添加元素
@@ -101,14 +101,14 @@ using namespace
}
```
![](2021-03-04-15-29-22.png)
![](image/2021-03-04-15-29-22.png)
- 使用特定的函数返回容器对象(集合对象)的迭代器
- 使用解引用操作返回迭代器指针指向的元素
### 迭代器运算
![](2021-03-04-15-42-38.png)
![](image/2021-03-04-15-42-38.png)
- 两个迭代器相减的结果使他们两个之间的距离,是一个整型常数,返回值不是一个迭代器。所以需要使用 beg+(end-beg)/2 来表示中间 mid 迭代器。end-beg 是一个整数。
@@ -249,4 +249,4 @@ for(int i=0;i<row_cnt;i++){
}
}
```
![](2021-03-04-17-20-26.png)
![](image/2021-03-04-17-20-26.png)

View File

@@ -15,11 +15,11 @@
## 2 算数运算符
![](2021-03-04-17-25-36.png)
![](image/2021-03-04-17-25-36.png)
## 3 逻辑和关系运算法
![](2021-03-04-17-26-34.png)
![](image/2021-03-04-17-26-34.png)
### 短路求值
@@ -30,7 +30,7 @@
## 4 赋值运算法
![](2021-03-04-17-30-19.png)
![](image/2021-03-04-17-30-19.png)
## 5 递增递减运算符
@@ -59,7 +59,7 @@
- 位运算符作用域证书类型的运算对象,并把运算对象看成二进制位的集合。
![](2021-03-04-17-39-49.png)
![](image/2021-03-04-17-39-49.png)
## 9 sizeof 运算符
@@ -99,6 +99,6 @@ type(expr);
## 12 优先级
![](2021-03-04-20-43-17.png)
![](image/2021-03-04-20-43-17.png)
![](2021-03-04-20-43-53.png)
![](image/2021-03-04-20-43-53.png)

View File

@@ -83,13 +83,13 @@ throw runtime_error("data must refer to ISBN")//抛出一个异常类。
### try语句块
![](2021-03-04-21-04-30.png)
![](image/2021-03-04-21-04-30.png)
* 只允许最多有一个catch捕获。捕获之后跳转到catch之后执行。
### 标准异常
![](2021-03-04-21-05-54.png)
![](image/2021-03-04-21-05-54.png)

View File

@@ -68,7 +68,7 @@ int main(int argc,char **argv){
C++中使用 initializer_list 类实现多个参数的传递。也是一个容器类,可以返回迭代器。
![](2021-03-04-21-57-59.png)
![](image/2021-03-04-21-57-59.png)
## 3 返回类型和 return 语句
@@ -154,7 +154,7 @@ assert(expr);
2. 选出能被实参调用的函数,称为可行函数。实参与形参的数量相等;实参与形参对应的类型相同。
3. 默认参数的重载函数优先级,高于,类型转换的重载函数的优先级。
![](2021-03-04-22-45-04.png)
![](image/2021-03-04-22-45-04.png)
## 7 函数指针

View File

@@ -89,11 +89,11 @@ hello{
- 类的接口可以不是类的成员。下图中print、add、read 是类的接口但是不是类的成员。被称作非成员接口函数。
![](2021-03-05-11-26-54.png)
![](image/2021-03-05-11-26-54.png)
- 非成员接口函数无法访问类的私有变量。可以声明友元,访问私有变量。友元的声明智能出现在类定义的内部。友元是突破访问控制符的方法。
![](2021-03-05-11-28-27.png)
![](image/2021-03-05-11-28-27.png)
- 友元也为多种形式的接口提供了方法。比如可以重载上述的 read 函数,让它成为多个不同的类友元。可以实现一个接口在多种不同情况下的使用。
@@ -155,7 +155,7 @@ class Hello;
### 委托构造函数
* 委托构造函数使用类的其他构造函数执行自己的初始化过程。
![](2021-03-05-13-42-02.png)
![](image/2021-03-05-13-42-02.png)
初始化执行的顺序
@@ -210,7 +210,7 @@ public
* 内置类型成员初始值必须是常量表达式。
* 类必须使用关系够函数的默认定义。
![](2021-03-05-15-23-34.png)
![](image/2021-03-05-15-23-34.png)
## 6 类的静态成员
@@ -219,7 +219,7 @@ public
### 声明静态成员
![](2021-03-05-15-25-52.png)
![](image/2021-03-05-15-25-52.png)
### 使用静态成员

View File

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

View File

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

View File

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

View File

Before

Width:  |  Height:  |  Size: 240 KiB

After

Width:  |  Height:  |  Size: 240 KiB

View File

Before

Width:  |  Height:  |  Size: 191 KiB

After

Width:  |  Height:  |  Size: 191 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 99 KiB

View File

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

View File

Before

Width:  |  Height:  |  Size: 336 KiB

After

Width:  |  Height:  |  Size: 336 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

View File

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 105 KiB

View File

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -102,7 +102,7 @@ cout<<hex<<3.4<<endl;
* 标准错误和异常如下:
![](2021-03-05-17-30-07.png)
![](image/2021-03-05-17-30-07.png)
### 2.4 可被调用的对象

View File

@@ -20,11 +20,11 @@
```
### pair定义
![](2021-03-07-17-22-16.png)
![](image/2021-03-07-17-22-16.png)
### pair操作
![](2021-03-07-17-22-38.png)
![](image/2021-03-07-17-22-38.png)
## 1.2 tuple
### 头文件
@@ -33,18 +33,18 @@
```
### 定义
* 扩展pair的概念拥有任意数量的元素。是一个异质的元素序列。
![](2021-03-07-17-29-36.png)
![](image/2021-03-07-17-29-36.png)
### 操作
![](2021-03-07-17-32-39.png)
![](image/2021-03-07-17-32-39.png)
```
tuple<int,float,string> t1{2,3.4,"yin"};
get<1>(t1);//获取t1的第一个元素
make_tuple(22,44,"helo");//元素类型自动推导
```
![](2021-03-07-17-33-43.png)
![](image/2021-03-07-17-33-43.png)
## 2 smart pointer 智能指针
## 3 极值
@@ -75,13 +75,13 @@ int main(){
```
#include<algorithm>
```
![](2021-03-07-17-47-32.png)
![](image/2021-03-07-17-47-32.png)
### 交换
```
#include<utility>
```
![](2021-03-07-17-48-43.png)
![](image/2021-03-07-17-48-43.png)
## 6 class ratio编译期分数
@@ -129,11 +129,11 @@ hours aDay(24);//表示一天的duration
### 算数运算
* 赋值初始化可以使得它在不同的时间单位之间,快速转换。
![](2021-03-07-21-42-10.png)
![](image/2021-03-07-21-42-10.png)
### 其他操作
![](2021-03-07-21-42-40.png)
![](image/2021-03-07-21-42-40.png)
## 7.3 Clock和Timepoint
@@ -145,7 +145,7 @@ hours aDay(24);//表示一天的duration
### Clock时钟
![](2021-03-07-21-53-28.png)
![](image/2021-03-07-21-53-28.png)
### 系统提供了三个clock
@@ -180,7 +180,7 @@ struct tm {
```
### 常用操作
![](2021-03-07-19-28-19.png)
![](image/2021-03-07-19-28-19.png)
### 常用函数
| 生成时间 | 函数 & 描述 |
@@ -252,11 +252,11 @@ int main( )
### cstddef
![](2021-03-07-22-11-44.png)
![](image/2021-03-07-22-11-44.png)
### cstdlib
![](2021-03-07-22-12-19.png)
![](image/2021-03-07-22-12-19.png)
### csting
![](2021-03-07-22-12-27.png)
![](image/2021-03-07-22-12-27.png)

View File

@@ -89,7 +89,7 @@ cout<<f()<<endl;
### 捕获列表
* 捕获列表的捕获方式
![](2021-03-06-14-01-43.png)
![](image/2021-03-06-14-01-43.png)
```
int a = 1;
auto f = [&a]{

View File

@@ -60,7 +60,7 @@ const int * pci = new const int(1024);
#include<memory>
```
### 智能指针的基础操作
![](2021-03-06-17-05-19.png)
![](image/2021-03-06-17-05-19.png)
### 智能指针陷阱
@@ -75,7 +75,7 @@ const int * pci = new const int(1024);
## 2 动态内存管理shared_ptr
### shared_ptr的操作
![](2021-03-06-17-06-13.png)
![](image/2021-03-06-17-06-13.png)
@@ -94,7 +94,7 @@ const int * pci = new const int(1024);
* 一旦一个shared_ptr的计数器变为0.它就会自动释放自己所管理的内存。使用析构函数,销毁自身。
* 所以当它为局部变量,并且退出局部作用域后,所有的指针变量自动销毁,其所对应的动态分配的内存对象的引用计数就回变为零,此时动态内存会自动销毁。
![](2021-03-06-17-26-40.png)
![](image/2021-03-06-17-26-40.png)
### shared_ptr和new申请内存
@@ -106,7 +106,7 @@ shared_ptr<int> p3 = new int{42};
```
### shared_ptr的其他方法
* shared_ptr的赋值、权限转移和清空。
![](2021-03-06-17-43-51.png)
![](image/2021-03-06-17-43-51.png)
* 不能试用get初始化另外一个智能指针也不能用get为智能指针赋值。
* 我们智能使用reset将智能指针指向其他的对象不能将一个新的对象直接赋值给已经初始化的智能指针。reset函数会更新对象的引用计数使其指向新的动态内存。
@@ -122,7 +122,7 @@ p.reset(new int(1024));//p指向一个新的对象。
## 3 动态内存管理 unique_ptr
![](2021-03-06-17-58-42.png)
![](image/2021-03-06-17-58-42.png)
* unique_ptr。某个时刻只能有一个unique_ptr只有一个给定的对象。当unique_ptr被销毁时它所指向的对象也被销毁。
* unique_ptr需要绑定到一个new返回的指针上。直接将指针置为空指针指向的对象就会被释放。可以使用delete释放unique_ptr
* unique_ptr不支持普通的拷贝和赋值操作。但是可以拷贝或赋值一个将要被销毁的unique_ptr.例如return unique_ptr。实现控制权转移
@@ -140,7 +140,7 @@ unique_ptr<int> n = m.release();//m放弃所有权转移给n
* 不控制所指向对象生存期的智能指针。它指向一个由shared_ptr管理的对象。
* 将weak_ptr绑定到shared_ptr上不会改变shared_ptr的引用计数。当shared_ptr被销毁对象就回被释放。
![](2021-03-06-18-09-20.png)
![](image/2021-03-06-18-09-20.png)
* 使用shared_ptr初始化weak_ptr
@@ -185,7 +185,7 @@ delete [] pa;
unique_ptr<int[]> up(new int[[10]]);
up.release();
```
![](2021-03-06-22-29-22.png)
![](image/2021-03-06-22-29-22.png)
## 5 allocator动态内存
@@ -196,7 +196,7 @@ up.release();
### 操作
* 主要操作如下
![](2021-03-06-22-34-11.png)
![](image/2021-03-06-22-34-11.png)
```
allcator<string> alloc;
@@ -208,5 +208,5 @@ alloc.deallocate(p,n)
```
### allocator算法
* 标准库为allocator定义了两个伴随算法。
![](2021-03-06-22-42-35.png)
![](image/2021-03-06-22-42-35.png)

View File

@@ -14,17 +14,17 @@
### C++ STL容器的实现
![](2021-03-06-15-39-37.png)
![](image/2021-03-06-15-39-37.png)
### C++ STL容器概览
![](2021-03-06-15-41-19.png)
![](image/2021-03-06-15-41-19.png)
## 2 所有容器的基础操作
### 容器统一的操作
![](2021-03-05-20-17-45.png)
![](2021-03-05-20-17-55.png)
![](image/2021-03-05-20-17-45.png)
![](image/2021-03-05-20-17-55.png)
主要包括六类
1. 构造函数和初始化(默认初始化、复制初始化、迭代器初始化、列表初始化)
@@ -36,11 +36,11 @@
### 容器的构造函数和初始化
![](2021-03-05-20-26-48.png)
![](image/2021-03-05-20-26-48.png)
### 容器的赋值和交换
![](2021-03-05-20-29-29.png)
![](image/2021-03-05-20-29-29.png)
### 容器大小
@@ -69,5 +69,5 @@
### 管理容量的成员函数
![](2021-03-05-21-13-26.png)
![](image/2021-03-05-21-13-26.png)

View File

@@ -12,7 +12,7 @@
### 向顺序容器中添加元素
![](2021-03-05-20-37-12.png)
![](image/2021-03-05-20-37-12.png)
* 在尾部添加元素**push_back(),emplace_back()**
* 在头部添加元素**push_front(),emplace_front()**
@@ -21,7 +21,7 @@
### 在顺序容器中访问元素
![](2021-03-05-20-40-51.png)
![](image/2021-03-05-20-40-51.png)
* 也可以使用**迭代器**访问元素。
* **at**会进行安全检查抛出异常。
@@ -30,7 +30,7 @@
### 在顺序容器中删除元素
![](2021-03-05-20-42-30.png)
![](image/2021-03-05-20-42-30.png)
* pop_back(),pop_front();
* erease(p),erase(b,e);
@@ -45,7 +45,7 @@
### 改变容器的大小
![](2021-03-05-20-56-47.png)
![](image/2021-03-05-20-56-47.png)
## 1 array
@@ -65,5 +65,5 @@ array<int, 5> arr = {1, 2, 3, 4, 5};
## 4 foward_list
### foward_list的特殊操作
![](2021-03-05-20-54-47.png)
![](image/2021-03-05-20-54-47.png)
## 5 list

View File

@@ -18,7 +18,7 @@
* 要求不重复的关键字,允许重复的关键字。
* 按顺序保存元素。无序保存。
![](2021-03-06-15-48-08.png)
![](image/2021-03-06-15-48-08.png)
### 关联容器的头文件
@@ -95,14 +95,14 @@ pair<string,string> author{'James","joyce"};
* pair上的操作
![](2021-03-06-16-18-21.png)
![](image/2021-03-06-16-18-21.png)
## 2 关联容器的基础操作
### 关联容器额外的类型名
![](2021-03-06-16-20-49.png)
![](image/2021-03-06-16-20-49.png)
### 关联容器的迭代器和元素遍历
@@ -123,19 +123,19 @@ pair<string,string> author{'James","joyce"};
### 添加元素
![](2021-03-06-16-32-02.png)
![](image/2021-03-06-16-32-02.png)
### 删除元素
![](2021-03-06-16-32-39.png)
![](image/2021-03-06-16-32-39.png)
### map下标操作
![](2021-03-06-16-33-47.png)
![](image/2021-03-06-16-33-47.png)
### 访问元素
![](2021-03-06-16-34-40.png)
![](image/2021-03-06-16-34-40.png)
## 3 无序关联容器的基础操作
@@ -151,6 +151,6 @@ pair<string,string> author{'James","joyce"};
### 管理桶
* 无序关联容器相对于普通关联容器的特殊操作。
![](2021-03-06-16-48-05.png)
![](image/2021-03-06-16-48-05.png)

View File

@@ -14,7 +14,7 @@
### 容器适配器的操作
![](2021-03-05-21-29-55.png)
![](image/2021-03-05-21-29-55.png)
* 可以用顺序容器初始化适配器。使用的是顺序容器的拷贝。
@@ -24,7 +24,7 @@
### 特有操作
![](2021-03-05-21-40-50.png)
![](image/2021-03-05-21-40-50.png)
## 2 queue和priority_queue
@@ -35,7 +35,7 @@
### 特有操作
![](2021-03-05-21-41-56.png)
![](image/2021-03-05-21-41-56.png)
## 3 bitset特殊容器
@@ -52,11 +52,11 @@
bitset<32> bitvec(1U);
```
* 编号从0开始的二进制位被称为低位。编号31结束的二进制位被称为高位。
![](2021-03-07-19-46-47.png)
![](image/2021-03-07-19-46-47.png)
### bitset操作
* bitset支持位运算
![](2021-03-07-19-50-56.png)
![](image/2021-03-07-19-50-56.png)

View File

@@ -62,9 +62,9 @@ cend()
接受一个容器,生成迭代器,能够向容器中的指定位置添加元素。
![](2021-03-06-14-23-15.png)
![](image/2021-03-06-14-23-15.png)
![](2021-03-07-22-33-59.png)
![](image/2021-03-07-22-33-59.png)
* back_inserter:创建一个push_back迭代器
* front_inserter:创建一个push_front迭代器
* inserter:创建一个insert迭代器。接受一个指向容器的迭代器。元素将被插入到给定迭代器所表示的元素之前。
@@ -98,7 +98,7 @@ int main(){
* istream_iterator:读取输入流。可以为任何定义了输入运算符的类创建迭代器对象。
![](2021-03-06-14-50-48.png)
![](image/2021-03-06-14-50-48.png)
```
/*
@@ -124,7 +124,7 @@ int main(){
* ostream_iterator:读取输出流。可以为任何创建了输出运算符的类,创建输出流迭代器。
![](2021-03-06-14-51-10.png)
![](image/2021-03-06-14-51-10.png)
```
ostream_iterator<int> out_iter(cout,"\n");

View File

@@ -287,7 +287,7 @@ binary|判断函数,返回true/false
### 五类迭代器
泛型算法只要能够提供五个迭代器类别,所有到的泛型算法都能够执行。每个算法都会对他的每个迭代器指明提供哪类迭代器。
![](2021-03-06-15-13-07.png)
![](image/2021-03-06-15-13-07.png)
### 输入迭代器
@@ -322,7 +322,7 @@ binary|判断函数,返回true/false
* 接受单个目标迭代器的算法
* 接受第二个输入序列的算法
![](2021-03-06-15-23-17.png)
![](image/2021-03-06-15-23-17.png)
### 算法的命名规范
* 算法有多个重载版本
@@ -337,11 +337,11 @@ binary|判断函数,返回true/false
* 成员函数中的算法
![](2021-03-06-15-27-21.png)
![](image/2021-03-06-15-27-21.png)
* splice算法
![](2021-03-06-15-28-46.png)
![](image/2021-03-06-15-28-46.png)

View File

@@ -211,28 +211,28 @@ int main()
### string的构造方法
![](2021-03-05-21-16-10.png)
![](image/2021-03-05-21-16-10.png)
### 子字符串操作
![](2021-03-05-21-16-47.png)
![](image/2021-03-05-21-16-47.png)
### 修改string的操作
![](2021-03-05-21-20-31.png)
![](image/2021-03-05-21-20-31.png)
### string搜索操作
![](2021-03-05-21-19-36.png)
![](image/2021-03-05-21-19-36.png)
### compare函数
![](2021-03-05-21-22-09.png)
![](image/2021-03-05-21-22-09.png)
### 数值转换
![](2021-03-05-21-23-27.png)
![](image/2021-03-05-21-23-27.png)

View File

@@ -12,23 +12,23 @@
```
### 库组件
![](2021-03-07-19-53-20.png)
![](image/2021-03-07-19-53-20.png)
### 正则表达式对象
![](2021-03-07-20-52-19.png)
![](image/2021-03-07-20-52-19.png)
### 操作
![](2021-03-07-19-55-20.png)
![](image/2021-03-07-19-55-20.png)
![](2021-03-07-20-34-45.png)
![](image/2021-03-07-20-34-45.png)
```C++
#include<iostream>
@@ -56,11 +56,11 @@ int main(){
### regex迭代器选择
![](2021-03-07-20-36-59.png)
![](image/2021-03-07-20-36-59.png)
### regex迭代器使用针对string
![](2021-03-07-20-53-15.png)
![](image/2021-03-07-20-53-15.png)
```
#include<iostream>
@@ -93,14 +93,14 @@ int main(){
```
### smatch的操作针对string
![](2021-03-07-21-07-30.png)
![](image/2021-03-07-21-07-30.png)
## 1.3 子表达式的正则匹配
![](2021-03-07-21-10-18.png)
![](image/2021-03-07-21-10-18.png)
## 1.4 regex_replace
![](2021-03-07-21-10-01.png)
![](image/2021-03-07-21-10-01.png)
## 2 正则表达式规则
主要包括四类
@@ -112,23 +112,23 @@ int main(){
### 2.1 字符类
![](2021-03-07-20-17-59.png)
![](image/2021-03-07-20-17-59.png)
### 2.2 数量限定符
![](2021-03-07-20-18-20.png)
![](image/2021-03-07-20-18-20.png)
### 2.3 位置限定符
![](2021-03-07-20-18-37.png)
![](image/2021-03-07-20-18-37.png)
### 2.4 特殊符号
![](2021-03-07-20-18-51.png)
![](image/2021-03-07-20-18-51.png)
### 2.5 普通字符集及其替换
![](2021-03-07-20-20-11.png)
![](image/2021-03-07-20-20-11.png)
### 2.6 贪婪模式与非贪婪模式

View File

@@ -1,10 +1,10 @@
# IO
> IO关系图
![](2021-03-05-16-12-52.png)
![](image/2021-03-05-16-12-52.png)
> IO 类的继承关系图
![](2021-03-05-16-29-19.png)
![](image/2021-03-05-16-29-19.png)
> 目录
> * 输入输出流iostream
@@ -20,7 +20,7 @@
> 继承自`basic_ios`和`basic_ios_base`基类
* 用来记录stream可能出现的状态。
![](2021-03-05-19-15-08.png)
![](image/2021-03-05-19-15-08.png)
* 使用iostate对象来记录和管理io的状态
* `>> <<`流运算符流函数会返回io的运行状态如果成功则会返回true否则返回false
@@ -203,7 +203,7 @@ ch=getchar(); //不能写成getchar(ch);
* close关闭关联文件
### 文件模式
![](2021-03-05-19-42-28.png)
![](image/2021-03-05-19-42-28.png)
### 实例
```C++

View File

@@ -18,8 +18,8 @@
### 随机数引擎的操作
![](2021-03-07-21-14-33.png)
![](2021-03-08-14-04-34.png)
![](image/2021-03-07-21-14-33.png)
![](image/2021-03-08-14-04-34.png)
* 编译器会自动选择一个随机数引擎作为default_random_engine的类型的引擎。
```
default_random_engine e;
@@ -28,8 +28,8 @@
### 随机数分布的操作
![](2021-03-07-21-20-51.png)
![](2021-03-08-14-06-13.png)
![](image/2021-03-07-21-20-51.png)
![](image/2021-03-08-14-06-13.png)
* 需要给默认的随机数引擎选择一个分布序列。
```
uniform_int_distribution<unsigned> u<0,9>;
@@ -58,13 +58,13 @@ int main( ){
## 1.2 随机分布引擎
C++提供了16个随机数引擎。
![](2021-03-08-14-03-18.png)
![](image/2021-03-08-14-03-18.png)
* default_random_engine
## 1.3 随机分布类型
C++提供了五大类随机分布
![](2021-03-08-14-05-20.png)
![](image/2021-03-08-14-05-20.png)
* uniform_int_distribution<T>(up_bound,down_bound)均匀整数分布T:short int long longlong。指定均匀分布的最大最小值。
@@ -86,21 +86,21 @@ srand((int)time(0)); // 产生随机种子把0换成NULL也行
### 常用操作
![](2021-03-08-14-44-22.png)
![](image/2021-03-08-14-44-22.png)
### 数值访问
![](2021-03-08-14-44-45.png)
![](image/2021-03-08-14-44-45.png)
### 算数运算
![](2021-03-08-14-45-15.png)
![](image/2021-03-08-14-45-15.png)
### 输入输出运算
![](2021-03-08-14-45-22.png)
![](image/2021-03-08-14-45-22.png)
### 超越函数
![](2021-03-08-14-46-04.png)
![](image/2021-03-08-14-46-04.png)
## 3 全局数值函数
@@ -113,7 +113,7 @@ srand((int)time(0)); // 产生随机种子把0换成NULL也行
### 数值函数
![](2021-03-08-14-47-09.png)
![](image/2021-03-08-14-47-09.png)
## 4 Valarray 数值数组

View File

@@ -444,7 +444,7 @@ mutex | 返回指向关联互斥的指针
owns_lock | 测试锁是否占有其关联互斥
operator bool | 测试锁是否占有其关联互斥
![](2021-03-08-18-31-27.png)
![](image/2021-03-08-18-31-27.png)
```
void shared_print(string msg, int id) {
@@ -497,7 +497,7 @@ void shared_print(string msg, int id) {
> 对于第一种情况condition_varaiblewait操作能够解锁等待信号量。当信号量来到时加锁执行操作然后解锁退出。当信号量来到时加锁但是第二个参数的内容发现是虚假信号能够继续解锁等待信号量。
![](2021-03-08-19-36-00.png)
![](image/2021-03-08-19-36-00.png)
### condition_variable操作

View File

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 187 KiB

View File

Before

Width:  |  Height:  |  Size: 228 KiB

After

Width:  |  Height:  |  Size: 228 KiB

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 238 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 265 KiB

View File

Before

Width:  |  Height:  |  Size: 300 KiB

After

Width:  |  Height:  |  Size: 300 KiB

View File

Before

Width:  |  Height:  |  Size: 387 KiB

After

Width:  |  Height:  |  Size: 387 KiB

View File

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 211 KiB

View File

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 316 KiB

View File

Before

Width:  |  Height:  |  Size: 287 KiB

After

Width:  |  Height:  |  Size: 287 KiB

View File

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 206 KiB

View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 156 KiB

View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 206 KiB

View File

Before

Width:  |  Height:  |  Size: 282 KiB

After

Width:  |  Height:  |  Size: 282 KiB

View File

Before

Width:  |  Height:  |  Size: 315 KiB

After

Width:  |  Height:  |  Size: 315 KiB

View File

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 158 KiB

View File

Before

Width:  |  Height:  |  Size: 224 KiB

After

Width:  |  Height:  |  Size: 224 KiB

View File

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 174 KiB

View File

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View File

Before

Width:  |  Height:  |  Size: 210 KiB

After

Width:  |  Height:  |  Size: 210 KiB

View File

Before

Width:  |  Height:  |  Size: 262 KiB

After

Width:  |  Height:  |  Size: 262 KiB

View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 170 KiB

View File

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 147 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 240 KiB

After

Width:  |  Height:  |  Size: 240 KiB

View File

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 218 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 188 KiB

View File

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 174 KiB

View File

Before

Width:  |  Height:  |  Size: 272 KiB

After

Width:  |  Height:  |  Size: 272 KiB

View File

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

Before

Width:  |  Height:  |  Size: 279 KiB

After

Width:  |  Height:  |  Size: 279 KiB

View File

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

View File

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 245 KiB

View File

Before

Width:  |  Height:  |  Size: 295 KiB

After

Width:  |  Height:  |  Size: 295 KiB

View File

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 162 KiB

View File

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 206 KiB

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

Before

Width:  |  Height:  |  Size: 286 KiB

After

Width:  |  Height:  |  Size: 286 KiB

View File

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 194 KiB

View File

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 188 KiB

View File

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 105 KiB

View File

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Some files were not shown because too many files have changed in this diff Show More