07 2020 档案
摘要:##strcpy和memcpy的区别 strcpy和memcpy都是标准C库函数,它们有下面的特点。 strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。 已知strcpy函数的原型是:char* strcpy(char* dest,
阅读全文
摘要:##C/C++ code char* p1="abcdefg"; char* p2; p2=p1; strcpy(p2,p1); 其中: p2=p1; strcpy(p2,p1); 这两个语句有什么区别?? ##解析: 没分配内存空间不能直接strcpy char* p2; 这是在声明一个变量 声明
阅读全文
摘要:头文件:#include <string.h> strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen (char *s); **【参数说明】**s为指定的字符串。 strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。 **【返回值】**返回字
阅读全文
摘要:##深度优先遍历(栈,先压右节点,再压左节点) 也就深入的遍历,沿着每一个分支直到走到最后,然后才返回来遍历剩余的节点。二叉树不同于图,图需要标记节点是否已经访问过,因为可能会存在环,而二叉树不会出现环,所以不需要标记。那么,我们只需要一个栈空间,来压栈就好了。因为深度优先遍历,遍历了根节点后,就开
阅读全文
摘要:#1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class
阅读全文
摘要:#1.概念: 广度优先搜索算法(Breadth-First-Search),又译作宽度优先搜索,或横向优先搜索,简称BFS,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。广度优先搜索的实现一般采用open-closed表。 #2.解析
阅读全文
摘要:#Linked List Cycle 原题链接:Linked List Cycle 判断一个链表是否有环,空间复杂度是O(1) 如果不考虑空间复杂度,可以使用一个map记录走过的节点,当遇到第一个在map中存在的节点时,就说明回到了出发点,即链表有环,同时也找到了环的入口。 不适用额外内存空间的技巧
阅读全文
摘要:“free store” VS “heap” 当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区”。 如果我接着问你自由存储区与堆有什么区别,你或许这样回答: “malloc在堆上分配的内存块,使用free释放内存,而n
阅读全文
摘要:第一步: 首先进入自己的博客园 -- 点击<<设置>>--找到 <<博客侧边栏公告(支持HTML代码) (支持 JS 代码) 第二步: 加入如下代码 <img style="width: 200px; height: 200px;" src="头像路径" alt="qq377905687的头像" c
阅读全文
摘要:【n个节点的二叉树有多少种形态(Catalan数)】 分析过程:(1)先考虑只有一个节点的情形,设此时的形态有f(1)种,那么很明显f(1)=1 (2)如果有两个节点呢?我们很自然想到,应该在f(1)的基础上考虑递推关系。那么,如果固定一个节点后,左右子树的分布情况为1=1+0=0+1,故有f(2)
阅读全文
摘要:全局变量与静态变量 static 声明的变量在C语言中有两方面的特征: 1.变量被放在程序的全局存储区中,这样在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2.变量用static告知编译器,自己仅在变量的作用范围内可见。这一点是它与全局变量的区别。Tips: A.若全
阅读全文
摘要:1.什么是static? static 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 1.1static的引入 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数
阅读全文
摘要:(1)select==>时间复杂度O(n) 它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。 (
阅读全文
摘要:计算机系统 我们知道计算机系统是由硬件和软件组成的。它们共同工作来运行应用程序。虽然系统的实现方式随着时间不断变化,但是系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件,它们执行着相似的功能,我们只有深入了解这些组件是如何工作的,以及这些组件是如何影响程序的正确性和性能的,才能写出高
阅读全文
摘要:在C语言中,指针的功能十分强大,这使得在C中程序员对于指针的使用要十分地谨慎。那么首先我们对于指针的使用就是要对空悬指针(dangling pointer)和野指针进行避免。 首先我们介绍空悬指针,空悬指针指的是一个指针,当它指向的对象已经被释放的时候而自身却没有被置为null的时候,那么这个指针就
阅读全文
摘要:ON_MESSAGE响应的是自定义消息,有关自定义消息的处理请看如下步骤: #定义消息: 在CCDlg类的头文件中加入如下代码: #define WM_CUSTOMIZE WM_USER+1 头文件中加入Customize的声明: afx_msg LRESULT Customize(WPARAM w
阅读全文