08 2019 档案

摘要:Inline函数特征: 相当于把内联函数里面的内容写在调用内联函数处; 相当于不用执行进入函数的步骤,直接执行函数体; 相当于宏,却比宏多了类型检查,真正具有函数特性; 编译器一般不内联包含循环、递归、switch 等复杂操作的内联函数; 在类声明中定义的函数,除了虚函数的其他函数都会自动隐式地当成 阅读全文
posted @ 2019-08-27 21:36 Single_Dont 阅读(477) 评论(0) 推荐(0)
摘要:我将从定义、技术实现、设问形式、实例总结来阐述我对于萃取机制的理解。 1.定义:traits中文意思是特性,它通过提取不同类的共性,使得可以统一处理。 2.技术实现:traits运用显式模板特殊化将代码中因为类型不同而发生变化的片段提取出来,用统一的接口来包装,并通过traits模板类公开的接口间接 阅读全文
posted @ 2019-08-24 10:49 Single_Dont 阅读(1100) 评论(0) 推荐(0)
摘要:1.首先先介绍一下什么是静态库、什么是动态库? 静态函数库: 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进可执行文件了。当然这也会 阅读全文
posted @ 2019-08-21 21:27 Single_Dont 阅读(592) 评论(0) 推荐(0)
摘要:客户端状态的变化: 客户端创建套接字之后会connect服务器,这时客户端会发送一个SYN到服务器,状态转换到SYN_SENT并等待服务器的回复,收到服务端的回复SYN+ACK(同一个报文)之后​​​客户端会回复ACK此时状态转换到ESTABLISHED,正常数据交互完成之后客户端会close套接字 阅读全文
posted @ 2019-08-20 23:10 Single_Dont 阅读(887) 评论(0) 推荐(0)
摘要:需要注意的问题(当数据成员函数指针型变量,需要申请空间赋值时) 1.构造函数 ①需要给空指针申请一个‘\0’的空间 2.拷贝构造函数 ①传入的参数,必须引用传递否则会出现无休止的拷贝构造 ②对其参数值不做修改,传入的参数需要加const ③避免浅拷贝的产生,每次拷贝构造,都重新申请空间赋值。 3.赋 阅读全文
posted @ 2019-08-19 20:34 Single_Dont 阅读(349) 评论(0) 推荐(0)
摘要:Lambda表达式(可以理解为一个函数对象,调用时重载了“()”) 定义:一个匿名函数,通过不同[capture]来捕获上下文的变量,进行处理的函数 格式:[capture] (params) mutable -> return-type {} 参数介绍: [capture]: (params) m 阅读全文
posted @ 2019-08-18 16:28 Single_Dont 阅读(280) 评论(0) 推荐(0)
摘要:堆排序分为大根堆和小根堆。 堆排思想:(采用树的概念来组织数据结构,在这里我是根据小根堆对数据进行排序) ①首先我们Insertheap一组数据,在插入的过程中采用向上调整(Shiftup),每次将插入的最小值放在堆顶(heap[0]). ②然后我们Removeheap创建好的堆,将heap[0]节 阅读全文
posted @ 2019-08-16 15:48 Single_Dont 阅读(311) 评论(0) 推荐(0)
摘要:按字面意思,通俗地说。以赋值符号 = 为界,= 左边的就是左值,= 右边就是右值。 比如:(1) int b = 3; (2) int a = b;第(2)行代码,a为左值,b为右值。 变量名编译之后,会映射成内存地址。看看a = b的含义。其实就是 将 "b地址内存里面的数据",放到"a地址内存" 阅读全文
posted @ 2019-08-16 13:04 Single_Dont 阅读(457) 评论(0) 推荐(1)
摘要:图示思想: 阅读全文
posted @ 2019-08-14 21:00 Single_Dont 阅读(149) 评论(0) 推荐(0)
摘要:希尔排序增量的问题,引用一本数据结构书中所说: 图示希尔排序思想: 阅读全文
posted @ 2019-08-14 20:54 Single_Dont 阅读(162) 评论(0) 推荐(0)
摘要:插入排序思想:将插入的元素记录,与前面的元素进行比较大小,查询到插入的位置,然后再将比它大的元素向后面移动,空出插入的位置,将元素插入。 剩下的和②步骤一样。。。 代码这里给出了3种,从基础到优化 主方法: 阅读全文
posted @ 2019-08-14 19:44 Single_Dont 阅读(178) 评论(0) 推荐(0)
摘要:在linux系统下,对于程序执行的过程中,我们都会想到进程。而创建进程通常使用fork函数,当然还有vfork函数。 今天在这,我将分享一下我的学习心得:关于fork()和vfork() fork() 1.定义:表示进程A创建进程B。在创建的过程中,进程B拷贝了一份进程A的所有资源。(进程A:父进程 阅读全文
posted @ 2019-08-11 23:41 Single_Dont 阅读(196) 评论(0) 推荐(0)
摘要:今天拜读了一本《图解HTTP》,将HTTP总结一下。 HTTP(超文本传输协议):一种规则 1.定义:一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。 2.特性:①HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大 阅读全文
posted @ 2019-08-11 19:24 Single_Dont 阅读(197) 评论(0) 推荐(0)
摘要:移动构造函数应用的场景???? 答:有时候我们会遇到这样一种情况,我们用对象a初始化对象b,后对象a我们就不在使用了,但是对象a的空间还在呀(在析构之前),既然拷贝构造函数,实际上就是把a对象的内容复制一份到b中,那么为什么我们不能直接使用a的空间呢?这样就避免了新的空间的分配,大大降低了构造的成本 阅读全文
posted @ 2019-08-09 17:38 Single_Dont 阅读(996) 评论(0) 推荐(0)
摘要:懒汉式:懒汉式的特点是延迟加载,比如配置文件,等到用的时候在创建类的实例,并且只可以创建一个。 饿汉式:饿汉式的特点是一开始就加载了,如果说懒汉式是“时间换空间”,那么饿汉式就是“空间换时间”,因为一开始就创建了实例。 阅读全文
posted @ 2019-08-09 08:59 Single_Dont 阅读(134) 评论(0) 推荐(0)
摘要:在C++中,我们常会遇到三种new的形式:operator new 、new operator 、placement new ①new operator (new操作符):①申请空间 ②创建对象 图示步骤: ②operator new (操作符new): 申请空间 ③placement new (定 阅读全文
posted @ 2019-08-08 18:24 Single_Dont 阅读(1384) 评论(0) 推荐(0)
摘要:选择排序思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 阅读全文
posted @ 2019-08-08 17:53 Single_Dont 阅读(160) 评论(0) 推荐(0)
摘要:冒泡排序优化算法思想:我们通过在程序定义了一个bool类型的flag变量,用来判断往后的循环当中,数组是否已经是有序的,每一轮循环都会设置其值为true,当有元素对调位置时,就将flag的值设置为true,表示该数组还不是有序数组。每一轮都要判断flag的值,如果判断当前一轮操作没有元素有位置调换, 阅读全文
posted @ 2019-08-07 20:18 Single_Dont 阅读(267) 评论(0) 推荐(0)
摘要:创建一个hello.c文件,按步骤操作: 一、预编译 <生成 hello.i文件 > 操作步骤:gcc -E hello.c -o hello.i 1.将所有的#define删除,并展开所有的宏定义; 2.处理所有的预编译指令,例如:#if,#elif,#else,#endif; 3.处理#incl 阅读全文
posted @ 2019-08-07 16:17 Single_Dont 阅读(969) 评论(0) 推荐(0)