摘要:查阅了相关资料,调用exit函数会直接将进程返回给操作系统,不论是在进程中主线程还是子线程中调用,都会直接将控制权返回给操作系统。 代码1:在主线程中调用exit退出。 #include <iostream> #include <thread> using namespace std; void t 阅读全文
posted @ 2020-05-15 11:09 张杨 阅读(40) 评论(0) 推荐(0) 编辑
摘要:[an error occurred while processing this directive] [an error occurred while processing this directive] Graph File Formats: The graph file formats inc 阅读全文
posted @ 2020-03-22 09:09 张杨 阅读(122) 评论(0) 推荐(0) 编辑
摘要:一直以来喜欢在kindle上看小说,kindle不伤眼,也可以帮助控制玩手机的时间。但在kindle上看txt格式的网络小说就很头疼了,这类小说在kindle上是没有目录的,而且篇幅巨长。所以一直以来我都想加上目录。于是就有了这篇文章。 在这里,要想加上目录,就要将txt格式的小说转换为mobi格式 阅读全文
posted @ 2020-01-30 10:29 张杨 阅读(175) 评论(0) 推荐(0) 编辑
摘要:题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路: 利用快慢指针,先循环找到快慢指针值相等的位置;再将慢指针重置到头部,和快指针一起移动,但这次快慢指针都每次只移动一个位置。 代码如下: /* struct ListNode { int val; struc 阅读全文
posted @ 2020-01-10 17:29 张杨 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路: 要分几种情况: (1)结点有右结点,则其下一个结点为其右结点的最左子节点。 (2)结点无右结点,且是其父节点的左节点,则其下一个结点为其父节点。 阅读全文
posted @ 2020-01-10 17:26 张杨 阅读(62) 评论(0) 推荐(0) 编辑
摘要:题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节 阅读全文
posted @ 2020-01-09 16:44 张杨 阅读(57) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路: 中序遍历二叉搜索树,就能得到顺序数列,所以先中序遍历二叉树,存储在vector中,然后返回第K-1元素。 代码如下: /* struct TreeNod 阅读全文
posted @ 2020-01-09 16:41 张杨 阅读(67) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4] 阅读全文
posted @ 2020-01-06 18:20 张杨 阅读(81) 评论(0) 推荐(0) 编辑
摘要:题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵 阅读全文
posted @ 2020-01-06 17:08 张杨 阅读(64) 评论(0) 推荐(0) 编辑
摘要:题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+ 阅读全文
posted @ 2020-01-05 20:53 张杨 阅读(52) 评论(0) 推荐(0) 编辑
摘要:题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是 阅读全文
posted @ 2020-01-05 19:51 张杨 阅读(80) 评论(0) 推荐(0) 编辑
摘要:如图,这个是看视频时,最后的作业,除了客户端未使用select实现外,其它的要求都有简单实现。 服务端代码如下: 客户端代码还是之前的版本,没有使用select实现: 阅读全文
posted @ 2019-12-01 11:28 张杨 阅读(73) 评论(0) 推荐(0) 编辑
摘要:最近学习了linux关于进程间通信的相关知识,所以决定借助进程和共享内存,并按照生产者消费者模型来创建一个简易聊天程序。下面简单的说一下程序的思路。 首先是服务端程序,服务端会创建两个进程,进程1负责接收客户端传送过来的消息,并存储起来。进程2负责读取进程1存取的消息。这里使用到了生产者和消费者编程 阅读全文
posted @ 2019-11-21 12:04 张杨 阅读(125) 评论(0) 推荐(0) 编辑
摘要:利用两个数组互相作为对方的辅助数组来实现,先二路划分,再从单个元素开始归并。代码如下: 阅读全文
posted @ 2019-09-22 10:30 张杨 阅读(79) 评论(0) 推荐(0) 编辑
摘要:数据结构测参见算法分类如下(图片来源https://www.cnblogs.com/hokky/p/8529042.html) 3.直接选择排序:每次查找当前序列中的最小元素,然后与序列头进行交换,再查询剩余序列中的长度,依次类推下去。 代码如下: 不管初始序列是否有序,其时间复杂度都是O(n*2) 阅读全文
posted @ 2019-08-29 11:44 张杨 阅读(88) 评论(0) 推荐(0) 编辑
摘要:数据结构测参见算法分类如下(图片来源https://www.cnblogs.com/hokky/p/8529042.html) 1.直接插入排序:直接插入排序是每次将要插入的数据与已排序的序列从后向前进行比较,如果已排序元素小于需要插入的数据,那么交换两者的位置,一直到达已排序序列头部为止。 代码如 阅读全文
posted @ 2019-08-28 22:02 张杨 阅读(213) 评论(0) 推荐(0) 编辑
摘要:今天遇到一个这样的问题,假设父进程有一个变量S,fork后,子进程中的变量S地址是否和父进程中的变量S 是相同的? 再学操作系统的时候,知道fork是采用的写时复制,所以如果子进程或者父进程不对变量S做修改的话,它们应该 是指向同一块物理内存,如果有修改,那么它们会指向不同的物理内存,但虚拟内存地址 阅读全文
posted @ 2019-08-25 22:41 张杨 阅读(103) 评论(0) 推荐(0) 编辑
摘要:首先是LRU的定义,LRU表示最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。 所以逻辑应该是每次都要将新被访问的页放到列表头部,如果超过了list长度限制,就将列表尾部的元素踢出去。 主要结构,STL中的双向链表结构list。 主要操作有get,表示访问key对应的value,此时 阅读全文
posted @ 2019-08-18 23:03 张杨 阅读(393) 评论(0) 推荐(0) 编辑
摘要:题目如下: 求最后的输出结果: 这道题当时没分清楚,太菜了,结果应该这样推出来, 首先弄清楚fork()返回值,在父进程中是一个非0数,子进程中则是0, 所以pid1可以分为两类值非0和0, (1)pid1非0,pid2同理有两种取值,0或者非0, (2)pid1为0,表示是子进程,则pid2同样是 阅读全文
posted @ 2019-08-18 21:18 张杨 阅读(91) 评论(0) 推荐(0) 编辑
摘要:C++编译过程 C++ 编译过程在介绍编译器之前,先简单地说一下 C++ 的编译过程,以便理解编译器的工作。编译(compiling)并不意味着只创建仅仅一个可执行文件。创建一个可执行文件是一个多级过程,其中最重要的过程是预处理(preprocessing),编译(compliation)和链接(l 阅读全文
posted @ 2019-07-15 23:06 张杨 阅读(596) 评论(0) 推荐(0) 编辑
摘要:声明引用的同时必须对其初始化,否则系统会报错,所以我们是无法这样使用 vector<int &> vec; 这条语句会报错,同时引用不是定义一个新的变量或对象,因此内存不会为引用开辟新的空间存储这个引用 而vector将无法开辟存储空间。 参考博客: https://www.cnblogs.com/ 阅读全文
posted @ 2019-07-14 23:06 张杨 阅读(565) 评论(0) 推荐(0) 编辑
摘要:最近遇到一个问题,就是要对一个vector的变量设置空的参数默认值,刚开始写NULL,发现不行,后来再网上查了一下,可以通过在外部设置一个变量,来为它赋值为空 运行结果: 阅读全文
posted @ 2019-07-07 21:29 张杨 阅读(443) 评论(0) 推荐(0) 编辑
摘要:XSS攻击: https://www.cnblogs.com/dolphinX/p/3391351.html 跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行 阅读全文
posted @ 2019-06-19 10:17 张杨 阅读(1214) 评论(2) 推荐(1) 编辑
摘要:我的机器是CUDA16.04的,之前装过CUDA10.0,因为一些原因,现在需要安转CUDA9.0。 1.首先https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target 阅读全文
posted @ 2019-04-01 10:57 张杨 阅读(169) 评论(0) 推荐(0) 编辑
摘要:1.cd .ssh 2.执行下面的命令,三次回车。 3.发送公钥 4.写入公钥 这样就可以了。 如果想要去掉自动登录,可以删掉本机authorized_keys文件中对应的信息。 阅读全文
posted @ 2019-03-22 19:46 张杨 阅读(69) 评论(0) 推荐(0) 编辑
摘要:英伟达驱动版本是384.130 显示的NVRM version: NVIDIA UNIX x86_64 Kernel Module是:384.130。 若是旧的版本就会出现如下问题。 这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新,一般情况下,重启机器就能够 阅读全文
posted @ 2019-03-22 19:37 张杨 阅读(284) 评论(0) 推荐(0) 编辑
摘要:一、基数排序 基数排序的思想比较好理解,即是从各位数开始比较起,一直比较到最高位位置,每次比较都是在前一次比较的基础上进行的。 代码如下: 二、二路归并排序 二路归并排序的思想是开始就将数列划分为两个部分,然后依次递归的对这两部分执行二分操作,直到所有的部分都只包含一个元素位置,此时,再分别对这些部 阅读全文
posted @ 2019-03-19 21:08 张杨 阅读(276) 评论(0) 推荐(0) 编辑
摘要:1.首先介绍一下select和epoll的异同,如下(摘抄自https://www.cnblogs.com/Anker/p/3265058.html) select的几大缺点: (1)每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大 (2)同时每次调用selec 阅读全文
posted @ 2019-03-18 15:41 张杨 阅读(301) 评论(0) 推荐(0) 编辑
摘要:这个问题困扰了我好长时间,网上查了好长时间,这个问题的解决方法,就是将binultils升级到2.26。 造成这个问题的原因是gcc和binultils版本不匹配,gcc对应的版本较高,gcc编译后,ld(由binultils决定)进行链接,结果由于binultils版本较低, 无法识别。 解决方法 阅读全文
posted @ 2019-03-11 19:49 张杨 阅读(2709) 评论(0) 推荐(1) 编辑
摘要:这篇文章已经无法考证是谁原创的了 首先注意usr 指 Unix System Resource,而不是User 然后通常: /usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变。 /usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同 阅读全文
posted @ 2019-03-06 17:12 张杨 阅读(2301) 评论(0) 推荐(0) 编辑