摘要: //代码类似https多线程下载,整体实现逻辑类似,区别比较大的是curl_opt的相关参数设置不一样#include <iostream> #include <fstream> #include <curl/curl.h> #include <pthread.h> #include <sys/mm 阅读全文
posted @ 2024-03-23 18:38 张杨 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 这里使用了curl网络库和使用多线程来下载对应https链接的文件 对应的.h头文件: #pragma once #include <iostream> #include <fstream> #include <curl/curl.h> #include <pthread.h> #include < 阅读全文
posted @ 2024-03-23 17:13 张杨 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 判断字节序的方法有三种,第一种利用联合体来做判断;第二种直接判断大于一个字节的类型最低位的值;第三种利用位域。 1、为啥会有两种字节序 算是历史原因吧,小端序符合cpu的运算习惯,因为cpu也是从低地址和高地址方向读取的;大端符合人类的书写习惯。简单的解释如下: 2、程序判断字节序 #include 阅读全文
posted @ 2022-11-16 22:56 张杨 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 今天开始学习极客学院的罗剑锋的C++实战笔记,学到了lambda表达式,这块东西讲真一直没怎么用过,今天学了点,想着写一个 求解n!的实现,开始,一直发现无法实现f(n)=n*f(n-1)这样的递归操作,百度了一下,网上还是大佬多呀! 下面直接上代码: // Lambda入门学习.cpp : 此文件 阅读全文
posted @ 2022-06-26 15:54 张杨 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 容器汇编1 比较简单的若干容器 1. stringbegin 可以得到对象起始点end 可以得到对象的结束点empty 可以得到容器是否为空size 可以得到容器的大小swap 可以和另外一个容器交换其内容 2. vector可以使用中括号的下标来访问其成员(同 string)可以使用 data 来 阅读全文
posted @ 2021-06-22 20:12 张杨 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 今天学习了C++中的RAII机制,主要是应对内存泄露的情况,通过将内存的动态申请放置在构造函数中,将动态内存的释放放置在析构函数中实现。 (1)malloc出来的空间,没有进行释放,存在内存泄漏; (2)如果在malloc和free之间抛异常,那么同样存在内存泄漏问题。该问题称为异常安全问题。 这样 阅读全文
posted @ 2021-06-14 22:11 张杨 阅读(223) 评论(0) 推荐(0) 编辑
摘要: C++中的内存管理 1. Linux中程序的内存地址分配 其中上面的地址为高位地址,下面的地址为低位地址。下面分别介绍各个内存区域的作用: l 代码段:存放函数体的二进制代码; l Bss段:存放未初始化的全局或静态数据; l Data段:存放已初始化的全局或静态变量; l 堆区:存放动态申请的内存 阅读全文
posted @ 2021-06-08 21:48 张杨 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 1. 接口类的定义 接口类是一种特殊的类,它只提供方法的声明,方法的定义在子类中完成;同时接口类无法被实例化。 2. 接口类的特征 最好不要有成员变量,但可以有静态常量,表示各种返回状态; 要有纯虚接口方法,让接口成为纯虚类,使之无法完成实例化; 要有虚析构函数,并提供默认实现,这个主要是为了防止子 阅读全文
posted @ 2021-06-07 12:55 张杨 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 今天主要是学习了单例模式的三种实现,包括懒汉式、双重检查锁懒汉式和饿汉式。 首先,我们应该要理解单例模式的概念,单例模式简单的来说就是一个类只允许有一个对象,为此,我们可以知道必须要控制类的构造行为,故将构造函数私有化、同时将该类的对象 定义为该类的静态数据成员(因为构造函数被私有化了)。 首先是懒 阅读全文
posted @ 2021-06-05 10:49 张杨 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: 输入:nums = [-1,0,1,2,-1,-4]输出:[[-1, 阅读全文
posted @ 2021-02-16 12:30 张杨 阅读(131) 评论(0) 推荐(0) 编辑
摘要: const_cast:用于将const变量转换为非const变量 int n = 5; int *k1 = const_cast<int*>(&n); //指针 *k1 = 1; int &k2 = const_cast<int&>(n); //引用 k2 = 2; const int a = 10 阅读全文
posted @ 2021-02-15 15:35 张杨 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题目如下: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: 输入:s = "aa" p = "a"输出:false 阅读全文
posted @ 2021-02-15 14:28 张杨 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 新年的刷的第一题,题目如下: 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2: 输入:s = "cbbd"输出:"bb"示例 3: 输入:s = "a"输出:"a"示例 4: 输入:s = " 阅读全文
posted @ 2021-02-14 12:11 张杨 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 下面简单的总结一下,自己对进程间通信的理解。首先,要意识到一点:各进程间拥有相互独立的地址空间,所以进程间无法在用户态完成通信,必须要借助操作系统,也就是内核态来完成相应的操作。 内核态和用户态 由上图可知,系统分为内核态和用户态,其中内核态包括内核,用户态主要指应用程序。内核控制了计算机的软件和硬 阅读全文
posted @ 2020-07-27 20:30 张杨 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 查阅了相关资料,调用exit函数会直接将进程返回给操作系统,不论是在进程中主线程还是子线程中调用,都会直接将控制权返回给操作系统。 代码1:在主线程中调用exit退出。 #include <iostream> #include <thread> using namespace std; void t 阅读全文
posted @ 2020-05-15 11:09 张杨 阅读(838) 评论(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 张杨 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 一直以来喜欢在kindle上看小说,kindle不伤眼,也可以帮助控制玩手机的时间。但在kindle上看txt格式的网络小说就很头疼了,这类小说在kindle上是没有目录的,而且篇幅巨长。所以一直以来我都想加上目录。于是就有了这篇文章。 在这里,要想加上目录,就要将txt格式的小说转换为mobi格式 阅读全文
posted @ 2020-01-30 10:29 张杨 阅读(2059) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路: 利用快慢指针,先循环找到快慢指针值相等的位置;再将慢指针重置到头部,和快指针一起移动,但这次快慢指针都每次只移动一个位置。 代码如下: /* struct ListNode { int val; struc 阅读全文
posted @ 2020-01-10 17:29 张杨 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路: 要分几种情况: (1)结点有右结点,则其下一个结点为其右结点的最左子节点。 (2)结点无右结点,且是其父节点的左节点,则其下一个结点为其父节点。 阅读全文
posted @ 2020-01-10 17:26 张杨 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节 阅读全文
posted @ 2020-01-09 16:44 张杨 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路: 中序遍历二叉搜索树,就能得到顺序数列,所以先中序遍历二叉树,存储在vector中,然后返回第K-1元素。 代码如下: /* struct TreeNod 阅读全文
posted @ 2020-01-09 16:41 张杨 阅读(281) 评论(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 张杨 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵 阅读全文
posted @ 2020-01-06 17:08 张杨 阅读(229) 评论(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 张杨 阅读(270) 评论(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 张杨 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 如图,这个是看视频时,最后的作业,除了客户端未使用select实现外,其它的要求都有简单实现。 服务端代码如下: 客户端代码还是之前的版本,没有使用select实现: 阅读全文
posted @ 2019-12-01 11:28 张杨 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 最近学习了linux关于进程间通信的相关知识,所以决定借助进程和共享内存,并按照生产者消费者模型来创建一个简易聊天程序。下面简单的说一下程序的思路。 首先是服务端程序,服务端会创建两个进程,进程1负责接收客户端传送过来的消息,并存储起来。进程2负责读取进程1存取的消息。这里使用到了生产者和消费者编程 阅读全文
posted @ 2019-11-21 12:04 张杨 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 利用两个数组互相作为对方的辅助数组来实现,先二路划分,再从单个元素开始归并。代码如下: 阅读全文
posted @ 2019-09-22 10:30 张杨 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 数据结构测参见算法分类如下(图片来源https://www.cnblogs.com/hokky/p/8529042.html) 3.直接选择排序:每次查找当前序列中的最小元素,然后与序列头进行交换,再查询剩余序列中的长度,依次类推下去。 代码如下: 不管初始序列是否有序,其时间复杂度都是O(n*2) 阅读全文
posted @ 2019-08-29 11:44 张杨 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 数据结构测参见算法分类如下(图片来源https://www.cnblogs.com/hokky/p/8529042.html) 1.直接插入排序:直接插入排序是每次将要插入的数据与已排序的序列从后向前进行比较,如果已排序元素小于需要插入的数据,那么交换两者的位置,一直到达已排序序列头部为止。 代码如 阅读全文
posted @ 2019-08-28 22:02 张杨 阅读(618) 评论(0) 推荐(0) 编辑