自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

转载 Unity里如何停掉Coroutine, Invoke的函数的执行,以及脚本的Start()和Update()

先列出所有可选的方法:StopAllCoroutines(); //只对Coroutine起作用,会停掉此脚本里所有的Coroutine。this.enable = false; // 禁掉脚本,其实只是禁掉Start(), Update()函数,脚本里其他的东东还是有效。this.gameobject.SetActive(false); //脚本所挂靠的gameobject被禁掉了,在场景中消失不见,不可访问了。用GameObject.Find()也找不到了。Destory(game...

2021-08-30 22:14:10 1889

转载 Unity 之 关于停止协程的五种方式解析

Unity 之 关于停止协程的五种方式解析前言:了解协程 方式一:函数的方式 方式二:函数名的方式 方式三:接收返回值 方式四:StopAllCoroutines 方式五:禁用/销毁游戏对象 本文小结:前言:了解协程官方描述 调用函数时,函数将运行到完成状态,然后返回。这实际上意味着在函数中发生的任何动作都必须在单帧更新内发生;函数调用不能用于包含程序性动画或随时间推移的一系列事件。协程是一个可暂停执行 (yield) 直到给定的 YieldInstruction 达到完成状态的函数

2021-08-28 17:08:47 3442

转载 C语言中int *p[n]和int (*p)[n]的区别

int *p[n] 分析:分析这个问题要先从字符优先级开始,在字符优先级表中,[]的优先级大于*,所以,int *p[n] 就等价于int *(p[n]),这样就清晰多了,再进化一下就是 (int *)(p[n]) ,这样就完整了,显然,(int *)(p[n]) 就是一个数组,是一个以n个整型地址为元素,数组名为p的数组;举个例子:#include <stdio.h>void main(){ int a=1,b=2,c=3,d=4; int *p[4] = {&a

2020-09-26 15:17:30 334

原创 C++字符串

char s1[] = "abc", s2[] = "abc"; const char s3[] = "abc", s4[] = "abc", *s5 = "abc", *s6 = "abc"; string s7("abc"), s8("abc"); cout << (s3 == s4) << " " << (s5 == s6) << " " << (s7 == s8) << " " << (s1 == s2) ..

2020-09-26 00:03:30 85

转载 C/C++内存四区

内存模型图32位CPU可寻址4G线性空间,每个进程都有各自独立的4G逻辑地址,其中0~3G是用户态空间,3~4G是内核空间,不同进程相同的逻辑地址会映射到不同的物理地址中。其逻辑地址其划分如下:各个段说明如下:3G用户空间和1G内核空间静态区域:text segment(代码段):包括只读存储区和文本区,其中只读存储区存储字符串常量,文本区存储程序的机器代码。data segment(数据段):存储程序中已初始化的全局变量和静态变量bss segment(BSS段):存储未初

2020-09-21 17:00:48 129

转载 关于lower_bound( )和upper_bound( )的常见用法

ower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。在从小到大的排序数组中,lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,

2020-09-20 23:13:32 379

转载 [c++11]我理解的右值引用、移动语义和完美转发

c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。左值、右值C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值。看见书上又将右值分为将亡值和纯右值。纯右值就是c++98标准中右值的概念,如非引

2020-09-15 16:38:09 121

转载 操作系统面试题(必考)

什么是进程?进程就是正在执行的程序,是操作系统资源分配的基本单位。一般来说,进程包含指令、数据和PCB。延伸问题:孤儿进程和僵尸进程有什么区别?孤儿进程就是说一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿进程将被 init 进程(进程ID为1的进程)所收养,并由 init 进程对它们完成状态收集工作。因为孤儿进程会被 init 进程收养,所以孤儿进程不会对系统造成危害。 僵尸进程就是一个子进程的进程描述符在子进程退出时不会释放,只有当父进程通过 wait()

2020-09-12 21:29:15 488

转载 Web服务器项目详解(二)

目录04 http连接处理(上)本文内容epollHTTP报文格式HTTP状态码有限状态机http处理流程05 http连接处理(中)本文内容流程图与状态机代码分析-http报文解析06 http连接处理(下)本文内容基础API流程图代码分析04 http连接处理(上)本文内容在服务器项目中,http请求的处理与响应至关重要,关系到用户界面的跳转与反馈。这里,社长将其分为上、中、下三个部分来讲解,具体的: 上篇,梳理...

2020-09-01 23:04:53 1280 1

转载 Web服务器项目详解(一)

01 线程同步机制封装类基础知识RAII RAII全称是“Resource Acquisition is Initialization”,直译过来是“资源获取即初始化”. 在构造函数中申请分配资源,在析构函数中释放资源。因为C++的语言机制保证了,当一个对象创建的时候,自动调用构造函数,当对象超出作用域的时候会自动调用析构函数。所以,在RAII的指导下,我们应该使用类来管理资源,将资源和对象的生命周期绑定 RAII的核心思想是将资源或者状态与对象的生命周期绑定,...

2020-08-31 19:01:11 1472

转载 epoll原理详解及epoll反应堆模型

文章目录一、epoll原理详解 二、epoll的两种触发模式 三、epoll反应堆模型  设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻进程只需要处理这100万连接中的一小部分连接。那么,如何才能高效的处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux2.4版本以前,那...

2020-08-29 21:42:40 100

转载 linux管道pipe详解

管道管道的概念:管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质:1. 其本质是一个伪文件(实为内核缓冲区)2. 由两个文件描述符引用,一个表示读端,一个表示写端。3. 规定数据从管道的写端流入管道,从读端流出。管道的原理: 管道实为内核使用环形队列机制,借助内核缓冲区(4k)实现。管道的局限性:① 数据自己读不能自己写。② 数据一旦被读走,便不在管道中存在,不可反复读取。③ 由于管道采用半双工通

2020-08-28 13:54:58 346

转载 打洞原理

tcp打洞首先我们明确现在我们有的设备:1、客户端A,网关NAT-A2、客户端B,网关NAT-B3、服务器S这些设备明确之后,就可以介绍TCP打洞的过程:1、首先服务器S开启两个服务监听,一个主连接端口,和一个协助打洞端口2、A通过主连接端口连接服务器S,B通过主连接端口连接服务器S,这个是正常的服务器通信3、当A需要和B进行直接连接时,首先A去连接服务器S的协助打洞端口,并向服务器发送和B的协助连接请求,服务器S收到请求后,向B发送A的外网地址(也就是NAT-A的地址.

2020-08-24 13:27:42 1900

转载 常见的六种设计模式以及应用场景

设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,可以帮助有根基的程序员迅速打通任督二脉,从此做什么都特别快。常用的模式及其场景如下。1) 单例模式。单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。应用场景:如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。2) 工厂模式。工厂模式主要是为创建对象提

2020-08-21 21:57:06 1038

转载 nullptr与NULL的区别

前言在C语言中,我们常常用NULL作为指针变量的初始值,而在C++中,却不建议你这么做。NULL是什么在《NULL,0,'\0',"0","\0"的区别》一文中,我们已经知道了在C中NULL是什么,在C的头文件中,通常定义如下:#define NULL ((void*)0)但是在C++中,它是这样定义的:#define NULL 0或者你可以在stddef.h看到完整的这段:#undef NULL#if defined(__cplusplus)#define NUL

2020-08-19 16:04:16 8310 2

原创 STL 堆

1.priority_queuepriority_queue默认是最大堆,要用最小堆需要比较函数greater<int>priority_queue<int, vector<int>, less<int>> maxHeap;priority_queue<int, vector<int>, greater<int>> minHeap;也可以自定义比较函数struct cmp{ bool ope

2020-08-10 13:36:26 185

原创 c++ 字符串常量

字符串常量。之所以称之为常量,是因为它可看作是一个没有命名的字符串且为常量,存放在静态数据区。这里说的静态数据区,是相对于堆、栈等动态数据区而言的。静态数据区存放的是全局变量和静态变量。从这一点上来说,字符串常量又能够称之为一个无名的静态变量。由于"Hello world!"这个字符串在函数 s1和s2 中都引用了。但在内存中却仅仅有一份拷贝,这与静态变量性质相当神似。char *c="chenxi";书上说: "chenxi"这个字符串被当作常量并且被放置在此程序的内存静态区。全部的字符窜常

2020-08-04 19:58:53 4193 2

原创 C++ 输出不使用科学计数法

#include <iostream>#include <iomanip>using namespace std;int main(){ //强制使用小数,防止使用科学计数法 cout << fixed; //控制显示的精度,控制小数点后面的位数。而整数太大时也会使用科学计数法,要输出完整的整数时就可以将下面改成setprecision(0) cout << setprecision(7); double Do.

2020-08-02 14:38:22 11865 1

原创 vector.size()返回值问题

刷80. 删除排序数组中的重复项 II时,所写代码如下:-

2020-07-30 17:45:50 3840

转载 向量,标量对向量求导数

1.已知  对谁求导数,就以谁(分母)作为主序,得出结果。比如这里x是列向量,求Ax关于x求导数,那么对x的每个分量分别求偏导数(写成一行),然后整理排成一列(同x一样是列向量)。  同理有  关于x的转置x.T求导数,x.T是行向量,那么Ax分别对x.T向量中的分量求偏导(写成一列),然后整体排成一行(同x.T是行向量)。2.若A是1×n行向量,x是n×1的列向量, 有 3...

2018-11-29 23:03:26 509

原创 机器学习中的线性代数

向量有时需要索引向量中的一些元素。在这种情况下,定义一个包含这些元素索引的集合,然后将该集合写在脚标处。比如,指定、 和,定义集合S={1,3,6},然后写作。用符号-表示集合的补集中的索引。比如表示x中除外的所有元素,表示x中除、 、外所有元素构成的向量。广播允许矩阵和向量相加,产生另一个矩阵:C=A+b,其中Cij=Aij+bj。也就是给矩阵A的每一行都加上向量b。那么这至少要求矩...

2018-11-27 23:12:26 137

原创 EM算法

隐变量什么是隐变量呢,让我们先简单的说一下,我们估计算法在做的一些事情,我们要做的其实就是估算出概率模型的参数,概率模型是什么呢?你可以简单把它理解成一个分布,甚至说可以把它理解成一个函数,我们的估计算法就是为了求解出这些函数的参数而存在的。这边借用知乎上的一个例子,希望能够解释清楚隐变量是什么? 如果你站在这个人旁边,你目睹了整个过程:这个人选了哪个袋子、抓出来的球是什么颜色的。然后你把每...

2018-11-25 15:14:31 194

原创 Python

Exponent notation:  **      Example:a**b 除法运算必为浮点数,int*int结果为int 可以使用“round()”功能控制显示精度,但也有上述情况,这意味着round(9.995,2)返回9.99而不是10,因为9.995的存储稍小于9.995。 Python capitalize()将字符串的第一个字母变成大写,其他字母变小写。 Python...

2018-09-23 23:05:59 139

原创 C++类继承中的构造函数和析构函数 调用顺序

在C++的类继承中,构造函数不能被继承(C11中可以被继承,但仅仅是写起来方便,不是真正的继承)建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推;析构对象时,其顺序正好与构造相反; if(子类没有自定义构造函数){         if(基类没有自定义构造函数)        {              用子类定义对象时,先自动调用基类的默认...

2018-09-02 17:16:28 1453

原创 机器学习自用阈值

梯度下降法特征缩放:尝试将所有特征的尺度都尽量缩放到-1 到1 之间梯度下降法学习率:α=0.01,0.03,0.1,0.3,1,3,10什么时候选择正规方程:需要计算,如果特征数量n较大则运算代价大,因为矩阵逆的计算时间复杂度为O(),通常来说当n小于10000 时还是可以接受的导数近似值中的ε:对梯度的估计采用的方法是在代价函数上沿着切线的方向选择离两个非常近的点然后计算两个点的平...

2018-08-13 22:46:53 2396

原创 计算N!的位数

问题 S: 数学之美时间限制: 1 Sec  内存限制: 128 MB提交: 118  解决: 37[提交][状态][讨论版]题目描述 数学起源于人类早期的生产活动,古巴比伦人从远古时代开始已经积累了一定的数学知识,并能应用实际问题.从数学本身看,他们的数学知识也只是观察和经验所得,没有综合结论和证明,但也要充分肯定他们对数学所做出的贡献。同时编程与数学也是分不开的,今天你需要解决一个数学问题。请...

2018-03-09 20:18:09 626

原创 Hay For Sale

问题 A: Hay For Sale时间限制: 1 Sec  内存限制: 12 MB提交: 175  解决: 39[提交][状态][讨论版]题目描述Farmer John suffered a terrible loss when giant Australian cockroaches ate the entirety of his hay inventory, leaving him with...

2018-03-09 01:11:56 379

原创 new一个二维数组

定义二维数组char array[x][y]; 1.只定义个一维的就可以了 char *array; array = new char[x*y]; 访问的时候*(array+i*y+j)表示array[i][j] 2.定义一个二维数组 char **array1 array1 = new char *[x]; for(i=0;i&lt;x;++i) array1[i] = new char[y];...

2018-03-09 01:06:33 822

转载 MFC 如何添加自定义消息

原文地址:http://www.cnblogs.com/jack-jia-moonew/p/4186646.html如果用户自定义的类要求响应普通的Windows消息(也就是以WM_开头,除了WM_COMMAND以外的消息,这类消息在WM_USER以下的是系统消息,WM_USER以上的可以由用户自己定义),那就要求自定义的类必须从CWnd中派生。这是由于此类消息的处理机制决定的,这类消息没

2017-08-31 10:37:51 213

转载 i++与++i的效率比较

原文地址:http://blog.csdn.net/oktears/article/details/19416609,http://blog.csdn.net/debugconsole/article/details/8058605解析:在这里声明,简单的比较前缀自增运算符和后缀自增运算符的效率是片面的,因为存在很多因素影响这个问题的答案。首先考虑内建数据类型的情况:如果自增运算表达式的结

2017-08-29 09:16:42 485

转载 C++find函数

头文件#include 函数实现templateInputIterator find (InputIterator first, InputIterator last, const T& val){ while (first!=last) { if (*first==val) return first; ++first; }

2017-08-28 10:26:47 597

转载 国外优秀开源网站

原文地址:http://blog.csdn.net/leichelle/article/details/80026561. Fedora开源项目社区 : http://fedoraproject.org/wiki/Communicate#IRC     描述: Fedora是个开源操作系统。2. 代码项目网 : http://www.codeproject.co

2017-08-26 10:17:00 403

原创 reverse函数

挺好用的一个函数,可以反转string、数组、容器等数据类型,cplusplus说头文件是algorithm,然而我试了并不需要任何头文件,只需要using namespace std;或者std::reverse反转string:#include#includeusing namespace std;int main(){ string s="abcdef"; cou

2017-08-24 09:39:58 1238

转载 C++中,get和getline函数的区别

原文地址:http://blog.csdn.net/suyin1993/article/details/48932885cin.getline()和cin.get()都是对输入的面向行的读取,即一次读取整行而不是单个数字或字符,但是二者有一定的区别。 cin.get()每次读取一整行并把由Enter键生成的换行符留在输入队列中,比如:#include using namespac

2017-08-24 08:59:18 424

转载 今天才发现printf不能直接输出string类型

原文地址:http://blog.csdn.net/spaceyqy/article/details/24840215近期研究设计模式,在程序输出时心血来潮用了c版本的printf,结果就蛋疼了,一直输出是乱码,  string s = "中国";printf("%s" , s);//输出乱码果断切换成c++版本的cout发现可以正常输出。于是上网找答案

2017-08-23 14:44:40 3859 1

转载 静态变量、全局变量和局部变量

原文地址:http://www.cnblogs.com/King-Gentleman/p/5350563.html1.从作用域看:C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文

2017-08-22 16:29:04 195

原创 求集合的所有子集

包含N个元素的集合S,求集合S的所有子集,并且输出子集的过程中元素个数递增显示的(即依次输出包含0个元素、1个元素、2个元素...的子集)例如:集合S包含三个元素{a, b, c},则它的所有子集为:{ }(空集), {a}, {b}, {c}, {a, b}, {a, c}, {b, c} 和{a, b, c}。可以使用位操作的思路来求解,具体方法:用2进制Bit位来标记集合中的

2017-08-22 15:15:07 308

转载 一道腾讯的面试题,关于a和&a

int a[5]={1,2,3,4,5};int *ptr=(int*)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));输出:2,5解析:a作为一个数组名,它本身就是一个指针,a指向数组首地址,a+1指向a[1]地址         a加上& 它就变成了双指针,可以理解为一个二维数组,&a+1就表示数组加一行,就指到了a[6]了

2017-08-22 10:08:42 199

转载 n & (n-1)

原文地址:http://blog.csdn.net/zheng0518/article/details/8882394按位与的知识n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000可以看到原本最低位为1的那位变为0。弄明白了n&(n-

2017-08-21 19:24:20 221

原创 乘法表

乘法表(百度2016实习生真题) 题目描述 度度熊和爷爷在玩一个乘法表游戏。乘法表的第i行第j列位置的元素为i*j,并且乘法表下标编号从1开始,比如2 × 3乘法表为1 2 32 4 6爷爷十分聪明,对于n*m的乘法表,只要度度熊给出一个数k,爷爷就能立刻告诉度度熊乘法表中元素按照不减顺序排列之后,第k个元素是多少。你能重复这个游戏吗?

2017-08-21 13:43:20 636

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除