自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c# System.Array Indexer 相关源码剖析

文章目录问题缘由以及探索mono 源码相关实现runtime 源码相关实现问题缘由以及探索在一个检测IFIX 热更新之后的patch文件与原包之间dll差异的工具中,发现了System.Int32[,].ctor, System.Int32[,].Get, System.Int32[,].Set 函数无法找到的问题,为了定位这个问题的缘由,展开了以下的探索。首先,和unity游戏开发部门确认之后这个问题本不该出现,因此就排除代码逻辑的问题,转而认为是工具没有判断到这种状况。在demo中重现到了这

2022-04-24 10:55:25 1630

原创 选择特定显示屏截屏的python实现

文章目录多屏幕截屏逻辑代码参考文章多屏幕截屏逻辑截屏的实现逻辑本次不予赘述,此次只谈论如何获取多个屏幕的 rect。Desktopmagic 库对于获取多屏幕信息的实现如下:main.pyfrom desktopmagic.screengrab_win32 import (getDisplayRects, getRectAsImage)# 获取所有显示屏信息screens = getDisplayRects()# 类似与 PIL.ImageGrab.grab 操作rect = getR

2022-04-19 10:58:05 1329

原创 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:app:stripDe

文章目录问题描述解决方法问题描述android studio 编译2012 年的项目时出现了如下问题:FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:app:stripDebugDebugSymbols’. > No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linu

2021-12-22 14:42:17 5270

原创 深刻理解现代移动GPU(持续更新中)

文章目录GPU简介GPU 与 CPU 的区别并行性矢量处理和标量处理矢量处理标量处理Vertex shader 和 Fragment shaderVertex shaderFragment shaderTBR, TBDR 与 IMRIMRTBREarly-ZTBDR(Tile-Based Deferred Rendering)HSR(Hidden Surface Removal)总结PowerVR GPUVertex Processing(Tiler)Per-Tile Rasterization (Rend

2021-10-18 16:29:23 1378

原创 安卓下不使用ndk运行原生C++

文章目录安卓下不使用ndk运行原生C++环境安装交叉编译环境示例程序hello world运行程序安卓下不使用ndk运行原生C++因为有不使用ndk和JNI来在安卓上运行C++程序的需求,因此在查阅了一些文章之后写下本文。环境编译环境为Windows下的Ubuntu WSL子系统;运行环境为android 11;交叉编译器为arm-linux-gnueabihf-gcc;安装交叉编译环境下载并安装gcc环境sudo apt-get install gcc-arm-linux-g

2021-09-02 19:21:01 385

原创 X86架构基本汇编指令详解

文章目录汇编指令伪指令1. .MODEL2. .STACK3. ENDP4. END汇编指令1. MOV:将源操作数复制到目的操作数2. MOVZX 和 MOVSX3. XCHG:交换两个操作数内容4. INC 和 DEC5. ADD 和 SUB:操作数相加减;6. NEG: NEG(非)指令通过把操作数转换为其二进制补码,将操作数的符号取反;7. ALIGN伪指令:对齐一个变量8. JMP指令9. LOOP指令10. PUSH,POP指令11. PUSHFD,POPFD指令12. PUSHAD, PUSH

2021-08-05 09:29:02 6228

原创 ARM架构汇编指令,寄存器以及一些问题

文章目录ARM寄存器1. 通用寄存器2. 向量寄存器3. 特殊寄存器4. 状态寄存器CPSRARM64约定常见指令MOVADDSUBMULSIDV, UDIVANDORREORSTRLDRSTPLDPSCVTF, FCVTZS比较指令位移指令跳转指令问题1ARM寄存器1. 通用寄存器31个通用寄存器(R0~R30),每个寄存器可以存取一个64位大小的数,当使用 X0-X30时,是一个64位的数,当使用 W0-W30访问时,是一个32位的数,为寄存器的低32位。[外链图片转存失败,源站可能有防盗

2021-08-05 09:25:23 3538

原创 linux使用mingw交叉编译exe文件,windows无法运行

环境说明linux:Ubuntu 20.04.1 LTS (win10子系统)windows:win10编译器:x86_64-w64-mingw32-g++shell:windows powershell, cmd, linux shell文件:linux下文件地址 /home/descosmos/cpp/test.cpp通过linux访问windows桌面: cd /mnt/c/User/kingsoft/Desktop事件还原在linux中有如下文件:test.cpp#includ

2021-01-22 19:33:11 2358

原创 一个小时的腾讯云二面,和一面差不多恐怖。。

今天11:40等到了面试,简单自我介绍之后开始面试问题面试官给10进制转换为2进制题目,在线手撕代码负数在计算机中的表示,如何转换?(补码,反码等)select和epoll区别?(文件描述符限制,采用的数据结构)select和epoll对于用户态和内核态消耗的不同?(select基于用户态,epoll 红黑树基于内核态等)介绍下如何判断一个socket可读?(一脸懵逼,说了收到数据,收到FIN,收到SYN等, 结果面试官问我SYN会让socket可读吗? 懵逼)epoll如何实现多路复用.

2020-11-11 13:13:25 2773 6

原创 电脑都面的没电了,我是如何通过腾讯云恐怖的一面面试的?

首先说明,本文是作者本人今日在面试腾讯云区域研发公司的总结自我介绍之后面试就开始了,平台是腾讯会议。做题面试官让我做两道题,第一题编写一个memcpy,第二题编写二叉树的先序遍历(树的结构面试官给出,调用有一个travseFun 函数指针,进行回调函数的调用)写完memcpy,面试官问我内存重叠问题考虑没有(这儿我没说出来,当时感觉自己要挂了)面试官直接第二题;先序遍历简单,递归和迭代两种。二叉树的递归遍历有什么问题?(回答可能会导致调用栈过深内存问题)二叉树迭代遍历时用到了自.

2020-11-10 23:34:59 1028 2

原创 线程安全的Sigleton(单例模式)

单例模式关于单例模式的定义以及其最基本的实现不再多提,需要指出的是,对于一般的单例模式,仅凭 if(hold_ == NULL) 这类语句来进行判断显然很难达到线程安全的要求,因此本文通过pthread_once 来实现。注意,也可以通过线程同步机制,例如锁,信号量等形式来实现。template<typename T>class Signleton: boost noncopyable{public: static T& instance(){ pthead_once(&

2020-10-05 16:56:44 218

原创 C++封装pthread_mutex

MuteLock使用类来封装该功能时需要注意,该类不支持拷贝构造和赋值。class MutexLock: boost::noncopyable{public: // Initialize mutex_ MutexLock():holder_(0){ pthread_mutex_init(&mutex_, NULL); } // Destroy mutex_ ~MutexLock(){ assert(holder_ == 0); pthread_mutex_destro

2020-10-05 11:49:50 340

原创 Centos7 从零开始搭建MySQL主从复制 (避免踩坑)

本文是作者在其他人的一些资料上,结合自己亲身搭建时“采坑”所总结出的经验。首先,本文的主要内容来源自MySQL主从复制配置演示,MySQL主从复制配置步骤等。文章大部分内容与上面一篇文章和一部视频的内容相同,但在一些方面由于系统不同等原因有作者本人的实践。软件:VMware Workstation 15 Player操作系统:Centos7版本:Percona-Server-5.6(MySQL分支版本)模式:一主两从搭建Centos7系统下载Percona-Server-5.6搭建.

2020-09-16 19:59:21 376

原创 刷题计划——双指针算法(二)

209.长度最小的子数组(中等)题目:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。 进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。同许多寻求子数组或者子串的题目一样,双指针法普遍都

2020-07-28 12:31:01 189

原创 刷题计划——位算法(一)

461. 汉明距离(简单)题目:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。有...

2020-05-07 23:16:03 407

原创 刷题计划——深度优先搜索(二)

面试题36. 二叉搜索树与双向链表(中等)题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示...

2020-05-06 08:57:49 218

原创 刷题计划——栈算法(三)

150. 逆波兰表达式求值(中等)题目:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分;给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((...

2020-05-03 18:08:39 214

原创 刷题计划——动态规划dynamic programming(四)

322. 零钱兑换(中等)题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount ...

2020-05-02 11:20:19 258

原创 刷题计划——回溯法(一)

47. 全排列(中等)题目:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]作为一道经典的回溯法题目,全排列的问题时回溯法入门的基础。首先,给定一个没有重复数字,总长为N的序列,其可能的排列组合为ANN−1...

2020-04-26 22:43:18 313

原创 刷题计划——深度优先搜索DFS(一)

面试题13. 机器人的运动范围(中等)题目:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因...

2020-04-25 22:38:45 241

原创 刷题计划——动态规划dynamic programming(三)

96. 不同的二叉搜索树(中等)题目:给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 ...

2020-02-26 18:04:57 172

原创 刷题计划——动态规划dynamic programming(二)

1139.最大的以1为边界的正方形题目:给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。示例 1:输入:grid = [[1,1,1],[1,0,1],[1,1,1]]输出:9示例 2:输入:grid = [[1,1,0,0]]输出:1提示:1 <= gr...

2020-02-19 19:19:39 314

原创 刷题计划——动态规划dynamic programming(一)

120.三角形最小路径和(中等)题目:给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。将该三角形用二维数组表示[ [2], [3, 4], [6, 5, 7...

2020-02-13 18:57:48 187

原创 刷题计划——栈算法(二)

921.使括号有效的最少添加(简单)题目:给定一个由 ‘(’ 和 ‘)’ 括号组成的字符串 S,我们需要添加最少的括号( ‘(’ 或是 ‘)’,可以在任何位置),以使得到的括号字符串有效。从形式上讲,只有满足下面几点之一,括号字符串才是有效的:它是一个空字符串,或者它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者它可以被写作 (A),其中 A 是有效字...

2020-02-10 21:11:34 382

原创 刷题计划——栈算法(一)

232.用栈实现队列(简单)题目:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); ...

2020-02-05 18:22:32 290

原创 刷题计划——双指针算法(一)

双指针算法(一)leetcode上的一些能用双指针办法解决的算法题题解86.分割链表(中等)题目:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2-...

2020-02-03 21:49:55 352

原创 MySQL的深入学习

这里写自定义目录标题1.SQL的约束2.列置空3.AUTO_INCREMENT 字段4.获取表结构5.获取服务器元数据6.系统数据库 mysql7.mysql 的权限8.MySQL 登录(两阶段)登录查询验证9.重命名10.数据库备份11.添加新本地用户12.myisamchk 检查和修复数据库13.MySQL 文件类型14.MySQL 性能优化(默认参数优化)15.中文排序错误解决办法16.索引...

2019-03-09 22:48:27 631

原创 C指针和数组深度汇总

引导问题1(柔性数组)问题2(不同存储类型数组作用域)问题3(初始化动态数组与静态数组)问题4(typedef 对指针的使用)问题5(指针使用位置)问题6(数组地址问题)问题7(指针符号优先级)问题8(地址的强制转换)问题9(二维指针,二维数组1)问题10(二维指针,二维数组2)行指针创建二维数组创建问题11(开辟动态数组失败)返回值办法二维指针办法问题12(函数指针)问题13(函数指针数组)问题...

2018-12-11 20:37:26 428

原创 创建双向链表(详解)

双向链表操作在学习了单链表之后,就顺带学习了双链表的操作。什么是双链表?双链表顾名思义,就是链表由单向的链变成了双向链。 使用这种数据结构,我们可以不再拘束于单链表的单向创建于遍历等操作,大大减少了在使用中存在的问题。在单链表中,我们有一个数据域,还有一个指针域,数据域用来存储相关数据,而指针域则负责链表之间的“联系”。 而在双向链表中,我们需要有两个指针域,一个负责向后连接,一个负...

2018-11-25 16:18:46 65763 11

原创 二叉排序树基本性质详解

有序二叉树在学习了基本的二叉树操作之后,数据结构就来到了图结构的学习,以及相关的基本算法。 完成之后,就到了二叉树的进阶学习,有序二叉树,平衡二叉树,哈夫曼树,到后面的B树,B+树,B*树。 今天,就先简单地说一瞎有序二叉树。关于有序二叉树,是二叉树的一种特殊的状态,以树根为起始点,左子树的值比树根的值小,而右子树的值比树根的值大。图形来说的话,相当于这样的一个二叉树:在这个二叉树...

2018-11-20 22:57:54 1630

原创 (进阶用法) C语言字符串函数

前序当学习到C语言字符串的操作时,我们知道了字符串的定义方式,字符串的输出方式,其中包括字符串的输入输出语句,例如 puts,gets ,fputs 等。还有字符串的操作函数, 例如 strcpy,strcmp,strcat,等。到最后明白函数的健壮性之后,学习了strncpy等可以提高代码健壮性的函数。介绍在字符串的输出语句使用中,总是离不开 NUL,这个终止符。NUL ,在C语言每个...

2018-10-27 12:27:55 915

原创 C语言字符分类与转换

前序C语言中刚学条件判断 if 语句时,就有一行这样的代码if( ch &gt;= 'a' &amp;&amp; ch &lt;= 'z' ) // 判断该字符是否为小写当初觉得平平无奇,直到在《C与指针》中看见标准库“ctype.h” 介绍中的一句话:于是便开始思考这条判断语句的健壮性,随机决定学习“ctype.h” 库。该库大致分为两部分,第一部分是字符的分类函...

2018-10-27 10:02:22 483

原创 (进阶)C函数调用

staic 变量使用的相关问题笔者最近看《C与指针》这本书,发现了许多从前学习时没有遇见的有趣问题。最让笔者震惊的是第五章5.8习题中第二题,让笔者又从头认真学习了一遍C语言的 static 变量。代码int fun(){ static int count = 1; return ++count;}int main(){ int answer ; answer =...

2018-10-19 23:30:41 546 2

原创 顺序表实现栈的操作

顺序表实现栈的操作栈的定义百度的解释是:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。自己理解的话,栈就像...

2018-09-29 21:51:05 3200 2

原创 循环链表的创建及可控输出

循环链表的创建以及基本操作上篇我们讲了运用头插法和尾插法创建单链表的方法,和两种方法的比较。 接着我们学习循环链表的创建。只要学会了单链表的创建,循环链表的创建就变得很简单。循环链表创建单链表的结构:循环链表:所谓循环链表,就是将单链表的尾结点 end 的指针域 也就是 end-&gt;next 指向头结点的地址 : end-&gt;next = head 。 这样就完成了循环链表...

2018-09-26 22:02:39 2141

原创 创建单链表的头插法与尾插法详解

创建单链表关于数据结构的入门,就是从顺序表和单链表开始。我们不讲顺序表,直接从单链表开始我们的数据结构和算法的学习之路。单链表就是一种特殊的结构体组合而成的数据结构,关于单链表的创建方法有很多种,但都大同小异。正如这幅图中所表示的那样,单链表就是由可能不连续的数据所组合而成的数据结构。 其中每个数据分为两部分,一部分是数据存储的位置,称为数据域,另外指针所存储的地方,称为指针域。typ...

2018-09-26 20:54:30 164709 91

原创 DOS 命令行基本命令及实践

1. DOS命令简介DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。2. DOS命令打开若使用window ,可用windows + s 或者 windows + r 的方式打开Cortana 或者 运行窗口。输入 cmd 之后就能使用DOS 命令行了。3. 常用DOS命令ASSOC ...

2018-09-22 10:56:49 563

原创 Python 爬虫的学习以及实践

BeautifulSoup 库是学习python的一个用来进行解析,遍历,维护html,xml文档的第三方库。 学习本内容需有基础的 html 知识。BeautifulSoup 库也叫BeautifulSorp4 或者bs4 ,主要调用BeautifulSoup类。 引用方式: import bs4 或 from bs4 import BeautifulSoup ...

2018-08-27 20:07:28 382

原创 python 窗口化网页爬虫实践

爬虫窗口化实践经过一段基本的爬虫和GUI学习后,实践了许多爬虫例子和GUI例子。 突发奇想将两者结合起来,因此写了这篇博客。 GUI 设计导入python内置库tkinter 爬虫 设计导入python第三方库 requests 和 BeautifulSoup 库。我们先理思路。 首先我们需要设计主窗体,其次需要向主窗体内添加元素,其中要有提示输入元素,输入元素,控制元素...

2018-08-25 12:03:01 1313

原创 python 中装饰器的运行若干问题

刚开始接触装饰器的时候,一方面被python中装饰器强大的功能所吸引,又一方面开始迷惑装饰 器的工作原理以及执行时所遇到的一些列问题。装饰器的执行顺序程序中写好装饰器以及被装饰函数后,通常情况下会有多个不同的函数调用,这种情况下会给开发人员一些困扰,因此熟悉装饰器的执行顺序显得异常重要。 下面例子中,从单装饰器清楚程序运行顺序 代码在此def ...

2018-08-24 22:38:32 575

空空如也

空空如也

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

TA关注的人

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