修改image
@@ -114,7 +114,7 @@ int j;//声明并定义了,申请了兑现该控件
|
||||
|
||||
### 标识符与关键字。
|
||||
|
||||

|
||||

|
||||
|
||||
### 作用域
|
||||
|
||||
@@ -185,7 +185,7 @@ int \*\*p2 = &p1
|
||||
|
||||
- const 的值是常量表达式,则直接在头文件中定义`const a = 3*5`,include 这个头文件就能使用 const a 的值。
|
||||
- const 的初始值通过函数计算得出,不是常量表达式;const 变量需要在不同的文件间共享,需要在头文件中 extern 声明,在 cpp 文件中进行定义。
|
||||

|
||||

|
||||
|
||||
### const 引用
|
||||
|
||||
@@ -205,7 +205,7 @@ const int &r2 =i;
|
||||
const double * cptr = π
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
- 指向非常量的“指向常量的指针”
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ using namespace
|
||||
|
||||
### 定义和初始化 string 对象
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
- 默认初始化
|
||||
- 直接初始化
|
||||
@@ -32,7 +32,7 @@ using namespace
|
||||
|
||||
### string 对象上的操作
|
||||
|
||||

|
||||

|
||||
|
||||
### 处理 string 对象中的字符
|
||||
|
||||
@@ -62,7 +62,7 @@ using namespace
|
||||
|
||||
### 定义和初始化 vector 对象
|
||||
|
||||

|
||||

|
||||
|
||||
- 直接初始化。不适用等号,而是使用{}
|
||||
- 复制初始化。使用等号,进行初始化
|
||||
@@ -82,7 +82,7 @@ using namespace
|
||||
|
||||
### 其他 vector 操作
|
||||
|
||||

|
||||

|
||||
|
||||
- 使用下表访问 vector 元素的索引
|
||||
- 不能使用下标形式向 vector 中添加元素
|
||||
@@ -101,14 +101,14 @@ using namespace
|
||||
}
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
- 使用特定的函数返回容器对象(集合对象)的迭代器
|
||||
- 使用解引用操作返回迭代器指针指向的元素
|
||||
|
||||
### 迭代器运算
|
||||
|
||||

|
||||

|
||||
|
||||
- 两个迭代器相减的结果使他们两个之间的距离,是一个整型常数,返回值不是一个迭代器。所以需要使用 beg+(end-beg)/2 来表示中间 mid 迭代器。end-beg 是一个整数。
|
||||
|
||||
@@ -249,4 +249,4 @@ for(int i=0;i<row_cnt;i++){
|
||||
}
|
||||
}
|
||||
```
|
||||

|
||||

|
||||
@@ -15,11 +15,11 @@
|
||||
|
||||
## 2 算数运算符
|
||||
|
||||

|
||||

|
||||
|
||||
## 3 逻辑和关系运算法
|
||||
|
||||

|
||||

|
||||
|
||||
### 短路求值
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
## 4 赋值运算法
|
||||
|
||||

|
||||

|
||||
|
||||
## 5 递增递减运算符
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
- 位运算符作用域证书类型的运算对象,并把运算对象看成二进制位的集合。
|
||||
|
||||

|
||||

|
||||
|
||||
## 9 sizeof 运算符
|
||||
|
||||
@@ -99,6 +99,6 @@ type(expr);
|
||||
|
||||
## 12 优先级
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
@@ -83,13 +83,13 @@ throw runtime_error("data must refer to ISBN")//抛出一个异常类。
|
||||
|
||||
### try语句块
|
||||
|
||||

|
||||

|
||||
|
||||
* 只允许最多有一个catch捕获。捕获之后跳转到catch之后执行。
|
||||
|
||||
|
||||
### 标准异常
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ int main(int argc,char **argv){
|
||||
|
||||
C++中使用 initializer_list 类实现多个参数的传递。也是一个容器类,可以返回迭代器。
|
||||
|
||||

|
||||

|
||||
|
||||
## 3 返回类型和 return 语句
|
||||
|
||||
@@ -154,7 +154,7 @@ assert(expr);
|
||||
2. 选出能被实参调用的函数,称为可行函数。实参与形参的数量相等;实参与形参对应的类型相同。
|
||||
3. 默认参数的重载函数优先级,高于,类型转换的重载函数的优先级。
|
||||
|
||||

|
||||

|
||||
|
||||
## 7 函数指针
|
||||
|
||||
|
||||
@@ -89,11 +89,11 @@ hello{
|
||||
|
||||
- 类的接口可以不是类的成员。下图中,print、add、read 是类的接口但是不是类的成员。被称作非成员接口函数。
|
||||
|
||||

|
||||

|
||||
|
||||
- 非成员接口函数无法访问类的私有变量。可以声明友元,访问私有变量。友元的声明智能出现在类定义的内部。友元是突破访问控制符的方法。
|
||||
|
||||

|
||||

|
||||
|
||||
- 友元也为多种形式的接口提供了方法。比如可以重载上述的 read 函数,让它成为多个不同的类友元。可以实现一个接口在多种不同情况下的使用。
|
||||
|
||||
@@ -155,7 +155,7 @@ class Hello;
|
||||
### 委托构造函数
|
||||
* 委托构造函数使用类的其他构造函数执行自己的初始化过程。
|
||||
|
||||

|
||||

|
||||
|
||||
初始化执行的顺序
|
||||
|
||||
@@ -210,7 +210,7 @@ public
|
||||
* 内置类型成员初始值必须是常量表达式。
|
||||
* 类必须使用关系够函数的默认定义。
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 6 类的静态成员
|
||||
@@ -219,7 +219,7 @@ public
|
||||
|
||||
### 声明静态成员
|
||||
|
||||

|
||||

|
||||
|
||||
### 使用静态成员
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 336 KiB After Width: | Height: | Size: 336 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
@@ -102,7 +102,7 @@ cout<<hex<<3.4<<endl;
|
||||
|
||||
* 标准错误和异常如下:
|
||||
|
||||

|
||||

|
||||
|
||||
### 2.4 可被调用的对象
|
||||
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
```
|
||||
### pair定义
|
||||
|
||||

|
||||

|
||||
|
||||
### pair操作
|
||||
|
||||

|
||||

|
||||
|
||||
## 1.2 tuple
|
||||
### 头文件
|
||||
@@ -33,18 +33,18 @@
|
||||
```
|
||||
### 定义
|
||||
* 扩展pair的概念,拥有任意数量的元素。是一个异质的元素序列。
|
||||

|
||||

|
||||
|
||||
### 操作
|
||||
|
||||

|
||||

|
||||
```
|
||||
tuple<int,float,string> t1{2,3.4,"yin"};
|
||||
get<1>(t1);//获取t1的第一个元素
|
||||
make_tuple(22,44,"helo");//元素类型自动推导
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
## 2 smart pointer 智能指针
|
||||
## 3 极值
|
||||
@@ -75,13 +75,13 @@ int main(){
|
||||
```
|
||||
#include<algorithm>
|
||||
```
|
||||

|
||||

|
||||
|
||||
### 交换
|
||||
```
|
||||
#include<utility>
|
||||
```
|
||||

|
||||

|
||||
|
||||
## 6 class ratio编译期分数
|
||||
|
||||
@@ -129,11 +129,11 @@ hours aDay(24);//表示一天的duration
|
||||
|
||||
### 算数运算
|
||||
* 赋值初始化可以使得它在不同的时间单位之间,快速转换。
|
||||

|
||||

|
||||
|
||||
### 其他操作
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 7.3 Clock和Timepoint
|
||||
@@ -145,7 +145,7 @@ hours aDay(24);//表示一天的duration
|
||||
|
||||
### Clock时钟
|
||||
|
||||

|
||||

|
||||
|
||||
### 系统提供了三个clock
|
||||
|
||||
@@ -180,7 +180,7 @@ struct tm {
|
||||
```
|
||||
### 常用操作
|
||||
|
||||

|
||||

|
||||
|
||||
### 常用函数
|
||||
| 生成时间 | 函数 & 描述 |
|
||||
@@ -252,11 +252,11 @@ int main( )
|
||||
|
||||
### cstddef
|
||||
|
||||

|
||||

|
||||
### cstdlib
|
||||
|
||||

|
||||

|
||||
|
||||
### csting
|
||||
|
||||

|
||||

|
||||
@@ -89,7 +89,7 @@ cout<<f()<<endl;
|
||||
### 捕获列表
|
||||
* 捕获列表的捕获方式
|
||||
|
||||

|
||||

|
||||
```
|
||||
int a = 1;
|
||||
auto f = [&a]{
|
||||
|
||||
@@ -60,7 +60,7 @@ const int * pci = new const int(1024);
|
||||
#include<memory>
|
||||
```
|
||||
### 智能指针的基础操作
|
||||

|
||||

|
||||
|
||||
|
||||
### 智能指针陷阱
|
||||
@@ -75,7 +75,7 @@ const int * pci = new const int(1024);
|
||||
## 2 动态内存管理shared_ptr
|
||||
### shared_ptr的操作
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ const int * pci = new const int(1024);
|
||||
* 一旦一个shared_ptr的计数器变为0.它就会自动释放自己所管理的内存。使用析构函数,销毁自身。
|
||||
* 所以当它为局部变量,并且退出局部作用域后,所有的指针变量自动销毁,其所对应的动态分配的内存对象的引用计数就回变为零,此时动态内存会自动销毁。
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
### shared_ptr和new申请内存
|
||||
@@ -106,7 +106,7 @@ shared_ptr<int> p3 = new int{42};
|
||||
```
|
||||
### shared_ptr的其他方法
|
||||
* shared_ptr的赋值、权限转移和清空。
|
||||

|
||||

|
||||
* 不能试用get初始化另外一个智能指针,也不能用get为智能指针赋值。
|
||||
|
||||
* 我们智能使用reset将智能指针指向其他的对象,不能将一个新的对象直接赋值给已经初始化的智能指针。reset函数会更新对象的引用计数,使其指向新的动态内存。
|
||||
@@ -122,7 +122,7 @@ p.reset(new int(1024));//p指向一个新的对象。
|
||||
|
||||
## 3 动态内存管理 unique_ptr
|
||||
|
||||

|
||||

|
||||
* 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被销毁,对象就回被释放。
|
||||
|
||||

|
||||

|
||||
|
||||
* 使用shared_ptr初始化weak_ptr
|
||||
|
||||
@@ -185,7 +185,7 @@ delete [] pa;
|
||||
unique_ptr<int[]> up(new int[[10]]);
|
||||
up.release();
|
||||
```
|
||||

|
||||

|
||||
|
||||
## 5 allocator动态内存
|
||||
|
||||
@@ -196,7 +196,7 @@ up.release();
|
||||
|
||||
### 操作
|
||||
* 主要操作如下
|
||||

|
||||

|
||||
|
||||
```
|
||||
allcator<string> alloc;
|
||||
@@ -208,5 +208,5 @@ alloc.deallocate(p,n)
|
||||
```
|
||||
### allocator算法
|
||||
* 标准库为allocator定义了两个伴随算法。
|
||||

|
||||

|
||||
|
||||
|
||||
@@ -14,17 +14,17 @@
|
||||
|
||||
### C++ STL容器的实现
|
||||
|
||||

|
||||

|
||||
|
||||
### C++ STL容器概览
|
||||
|
||||

|
||||

|
||||
|
||||
## 2 所有容器的基础操作
|
||||
### 容器统一的操作
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
主要包括六类
|
||||
1. 构造函数和初始化(默认初始化、复制初始化、迭代器初始化、列表初始化)
|
||||
@@ -36,11 +36,11 @@
|
||||
|
||||
### 容器的构造函数和初始化
|
||||
|
||||

|
||||

|
||||
|
||||
### 容器的赋值和交换
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
### 容器大小
|
||||
@@ -69,5 +69,5 @@
|
||||
|
||||
### 管理容量的成员函数
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
### 向顺序容器中添加元素
|
||||
|
||||

|
||||

|
||||
|
||||
* 在尾部添加元素**push_back(),emplace_back()**
|
||||
* 在头部添加元素**push_front(),emplace_front()**
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
### 在顺序容器中访问元素
|
||||
|
||||

|
||||

|
||||
|
||||
* 也可以使用**迭代器**访问元素。
|
||||
* **at**会进行安全检查抛出异常。
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
### 在顺序容器中删除元素
|
||||
|
||||

|
||||

|
||||
|
||||
* pop_back(),pop_front();
|
||||
* erease(p),erase(b,e);
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
### 改变容器的大小
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 1 array
|
||||
@@ -65,5 +65,5 @@ array<int, 5> arr = {1, 2, 3, 4, 5};
|
||||
## 4 foward_list
|
||||
### foward_list的特殊操作
|
||||
|
||||

|
||||

|
||||
## 5 list
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
* 要求不重复的关键字,允许重复的关键字。
|
||||
* 按顺序保存元素。无序保存。
|
||||
|
||||

|
||||

|
||||
|
||||
### 关联容器的头文件
|
||||
|
||||
@@ -95,14 +95,14 @@ pair<string,string> author{'James","joyce"};
|
||||
|
||||
* pair上的操作
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
## 2 关联容器的基础操作
|
||||
|
||||
### 关联容器额外的类型名
|
||||

|
||||

|
||||
|
||||
|
||||
### 关联容器的迭代器和元素遍历
|
||||
@@ -123,19 +123,19 @@ pair<string,string> author{'James","joyce"};
|
||||
|
||||
### 添加元素
|
||||
|
||||

|
||||

|
||||
|
||||
### 删除元素
|
||||
|
||||

|
||||

|
||||
|
||||
### map下标操作
|
||||
|
||||

|
||||

|
||||
|
||||
### 访问元素
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 3 无序关联容器的基础操作
|
||||
@@ -151,6 +151,6 @@ pair<string,string> author{'James","joyce"};
|
||||
|
||||
### 管理桶
|
||||
* 无序关联容器相对于普通关联容器的特殊操作。
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
### 容器适配器的操作
|
||||
|
||||

|
||||

|
||||
* 可以用顺序容器初始化适配器。使用的是顺序容器的拷贝。
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
### 特有操作
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 2 queue和priority_queue
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
### 特有操作
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 3 bitset特殊容器
|
||||
@@ -52,11 +52,11 @@
|
||||
bitset<32> bitvec(1U);
|
||||
```
|
||||
* 编号从0开始的二进制位被称为低位。编号31结束的二进制位被称为高位。
|
||||

|
||||

|
||||
|
||||
|
||||
### bitset操作
|
||||
* bitset支持位运算
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
@@ -62,9 +62,9 @@ cend()
|
||||
|
||||
接受一个容器,生成迭代器,能够向容器中的指定位置添加元素。
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
* back_inserter:创建一个push_back迭代器
|
||||
* front_inserter:创建一个push_front迭代器
|
||||
* inserter:创建一个insert迭代器。接受一个指向容器的迭代器。元素将被插入到给定迭代器所表示的元素之前。
|
||||
@@ -98,7 +98,7 @@ int main(){
|
||||
* istream_iterator:读取输入流。可以为任何定义了输入运算符的类创建迭代器对象。
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
```
|
||||
/*
|
||||
@@ -124,7 +124,7 @@ int main(){
|
||||
* ostream_iterator:读取输出流。可以为任何创建了输出运算符的类,创建输出流迭代器。
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
```
|
||||
ostream_iterator<int> out_iter(cout,"\n");
|
||||
|
||||
@@ -287,7 +287,7 @@ binary|判断函数,返回true/false
|
||||
### 五类迭代器
|
||||
泛型算法只要能够提供五个迭代器类别,所有到的泛型算法都能够执行。每个算法都会对他的每个迭代器指明提供哪类迭代器。
|
||||
|
||||

|
||||

|
||||
|
||||
### 输入迭代器
|
||||
|
||||
@@ -322,7 +322,7 @@ binary|判断函数,返回true/false
|
||||
* 接受单个目标迭代器的算法
|
||||
* 接受第二个输入序列的算法
|
||||
|
||||

|
||||

|
||||
|
||||
### 算法的命名规范
|
||||
* 算法有多个重载版本
|
||||
@@ -337,11 +337,11 @@ binary|判断函数,返回true/false
|
||||
* 成员函数中的算法
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
* splice算法
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
@@ -211,28 +211,28 @@ int main()
|
||||
|
||||
### string的构造方法
|
||||
|
||||

|
||||

|
||||
|
||||
### 子字符串操作
|
||||
|
||||

|
||||

|
||||
|
||||
### 修改string的操作
|
||||

|
||||

|
||||
|
||||
|
||||
### string搜索操作
|
||||
|
||||

|
||||

|
||||
|
||||
### compare函数
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
### 数值转换
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
@@ -12,23 +12,23 @@
|
||||
```
|
||||
|
||||
### 库组件
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
### 正则表达式对象
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
### 操作
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
```C++
|
||||
#include<iostream>
|
||||
@@ -56,11 +56,11 @@ int main(){
|
||||
|
||||
### regex迭代器选择
|
||||
|
||||

|
||||

|
||||
|
||||
### regex迭代器使用,针对string
|
||||
|
||||

|
||||

|
||||
|
||||
```
|
||||
#include<iostream>
|
||||
@@ -93,14 +93,14 @@ int main(){
|
||||
```
|
||||
### smatch的操作,针对string
|
||||
|
||||

|
||||

|
||||
|
||||
## 1.3 子表达式的正则匹配
|
||||
|
||||

|
||||

|
||||
## 1.4 regex_replace
|
||||
|
||||

|
||||

|
||||
## 2 正则表达式规则
|
||||
|
||||
主要包括四类
|
||||
@@ -112,23 +112,23 @@ int main(){
|
||||
|
||||
### 2.1 字符类
|
||||
|
||||

|
||||

|
||||
|
||||
### 2.2 数量限定符
|
||||
|
||||

|
||||

|
||||
|
||||
### 2.3 位置限定符
|
||||
|
||||

|
||||

|
||||
|
||||
### 2.4 特殊符号
|
||||
|
||||

|
||||

|
||||
|
||||
### 2.5 普通字符集及其替换
|
||||
|
||||

|
||||

|
||||
|
||||
### 2.6 贪婪模式与非贪婪模式
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# IO
|
||||
|
||||
> IO关系图
|
||||

|
||||

|
||||
|
||||
> IO 类的继承关系图
|
||||

|
||||

|
||||
|
||||
> 目录
|
||||
> * 输入输出流iostream
|
||||
@@ -20,7 +20,7 @@
|
||||
> 继承自`basic_ios`和`basic_ios_base`基类
|
||||
* 用来记录stream可能出现的状态。
|
||||
|
||||

|
||||

|
||||
|
||||
* 使用iostate对象来记录和管理io的状态
|
||||
* `>> <<`流运算符(流函数)会返回io的运行状态,如果成功,则会返回true,否则返回false
|
||||
@@ -203,7 +203,7 @@ ch=getchar(); //不能写成getchar(ch);
|
||||
* close关闭关联文件
|
||||
|
||||
### 文件模式
|
||||

|
||||

|
||||
### 实例
|
||||
|
||||
```C++
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
|
||||
|
||||
### 随机数引擎的操作
|
||||

|
||||

|
||||

|
||||

|
||||
* 编译器会自动选择一个随机数引擎作为default_random_engine的类型的引擎。
|
||||
```
|
||||
default_random_engine e;
|
||||
@@ -28,8 +28,8 @@
|
||||
|
||||
### 随机数分布的操作
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
* 需要给默认的随机数引擎选择一个分布序列。
|
||||
```
|
||||
uniform_int_distribution<unsigned> u<0,9>;
|
||||
@@ -58,13 +58,13 @@ int main( ){
|
||||
## 1.2 随机分布引擎
|
||||
C++提供了16个随机数引擎。
|
||||
|
||||

|
||||

|
||||
* default_random_engine
|
||||
## 1.3 随机分布类型
|
||||
|
||||
C++提供了五大类随机分布
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
* uniform_int_distribution<T>(up_bound,down_bound)均匀整数分布T:short int long longlong。指定均匀分布的最大最小值。
|
||||
@@ -86,21 +86,21 @@ srand((int)time(0)); // 产生随机种子把0换成NULL也行
|
||||
|
||||
### 常用操作
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
### 数值访问
|
||||
|
||||

|
||||

|
||||
|
||||
### 算数运算
|
||||

|
||||

|
||||
|
||||
### 输入输出运算
|
||||
|
||||

|
||||

|
||||
### 超越函数
|
||||

|
||||

|
||||
|
||||
|
||||
## 3 全局数值函数
|
||||
@@ -113,7 +113,7 @@ srand((int)time(0)); // 产生随机种子把0换成NULL也行
|
||||
|
||||
### 数值函数
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## 4 Valarray 数值数组
|
||||
@@ -444,7 +444,7 @@ mutex | 返回指向关联互斥的指针
|
||||
owns_lock | 测试锁是否占有其关联互斥
|
||||
operator bool | 测试锁是否占有其关联互斥
|
||||
|
||||

|
||||

|
||||
|
||||
```
|
||||
void shared_print(string msg, int id) {
|
||||
@@ -497,7 +497,7 @@ void shared_print(string msg, int id) {
|
||||
|
||||
> 对于第一种情况:condition_varaiblewait操作能够解锁等待信号量。当信号量来到时,加锁执行操作,然后解锁,退出。当信号量来到时,加锁,但是第二个参数的内容发现是虚假信号,能够继续解锁等待信号量。
|
||||
|
||||

|
||||

|
||||
|
||||
### condition_variable操作
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 238 KiB After Width: | Height: | Size: 238 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 265 KiB |
|
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 300 KiB |
|
Before Width: | Height: | Size: 387 KiB After Width: | Height: | Size: 387 KiB |
|
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 316 KiB After Width: | Height: | Size: 316 KiB |
|
Before Width: | Height: | Size: 287 KiB After Width: | Height: | Size: 287 KiB |
|
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 206 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 206 KiB |
|
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 315 KiB |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 224 KiB After Width: | Height: | Size: 224 KiB |
|
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 210 KiB |
|
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 279 KiB |
|
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 245 KiB After Width: | Height: | Size: 245 KiB |
|
Before Width: | Height: | Size: 295 KiB After Width: | Height: | Size: 295 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 206 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 286 KiB After Width: | Height: | Size: 286 KiB |
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |