自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (2)
  • 收藏
  • 关注

原创 Windows下的动态链接 之 DLL简介

Windows下的动态链接DLL简介符号导入导出表DLL优化C++与动态链接DLL HELL小结1.DLL简介DLL 即动态链接库(Dynamic-Link Library)的缩写,它相当于Linux下的共享对象。Window 系统大量采用了这种 DLL 机制,甚至包括 Windows 的内核的结构都很大程度依赖于 DLL 机制。Windows 下的 DLL 文件和 EXE 文...

2020-03-11 19:04:15 401

原创 _beginthread, _beginthreadex

语法uintptr_t _beginthread( // NATIVE CODE void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist);uintptr_t _beginthread( // MANAGED CODE void( __clrcall *start_add...

2020-02-03 15:02:15 738

原创 编译和链接

简述本文将从程序源代码到最终可执行文件的4个步骤:预编译、编译、汇编、链接。说明它们的作用和相互之间的联系,IDE集成开发工具和编译器默认的命令通常会将这些步骤合并成一步,使得我们通常很少关注这些步骤。整个编译过程分为两大步:编译:把文本形式的源代码翻译成机器语言,并形成目标文件。链接:把目标文件 操作系统的启动代码和库文件组织起来形成可执行程序。下图给出的是GCC的编译过程分解图:...

2019-12-12 15:31:46 216

原创 MFC中使用Qt

简述最近在处理一个MFC中嵌入Qt窗口,所遇到的一些问题。进行总结,对一些问题进行分析理解,提炼出自己的看法。qtwinmigrateGraphicsView框架事件处理字符集,文件编码qtwinmigate由于MFC和QT的消息循环机制不同,Qt所实现的功能不能直接使用在MFC/Win32上。qtwinmigate是一个Qt官方的解决方案。该方案提供了一组允许使用Qt和MFC ...

2019-08-16 18:20:20 1933

原创 Qt资料

QT中PRO文件写法的详细介绍https://blog.csdn.net/adriano119/article/details/5878169

2019-07-26 11:41:22 143

原创 Java学习

探秘Java中的String、StringBuilder以及StringBufferhttps://www.cnblogs.com/dolphin0520/p/3778589.html

2019-06-03 17:55:45 90

转载 探秘Java中String、StringBuilder以及StringBuffer

相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String、StringBuilder和StringBuffer这几个类,分析它们的异同点以及了解各个类适用的场景。下面是本文的目录大纲:  一.你了解St...

2019-06-03 17:44:16 111

原创 MFC学习资料

深入浅出话VC++——MFC的本质http://www.cnblogs.com/muouln/p/8036693.html

2019-05-24 15:10:06 184

原创 计算机网络

NAT(地址转换技术)详解https://blog.csdn.net/gui951753/article/details/79593307

2019-03-29 13:49:39 138

原创 C++博客链接

C++隐式共享技术Qt隐式共享技术 https://www.devbean.net/2013/01/qt-study-road-2-implicit-sharing/

2018-12-14 17:38:28 177

原创 Window博客链接

浅谈windows消息机制https://www.cnblogs.com/gu-zhan/p/4053439.html

2018-12-14 15:41:43 128

原创 C++内存管理(二)未完待续

简述前面一章大概分开的剖析一下,这章大概讲解一下,一般编程过程中背后的内存原理。现在先来看一张图。 在这里讲一下流程。 1.使用new和delete表达式请求分配内存。 2.编译器会解释表达式为(默认全局的operator new),如果是一个类重载了operator new 或者 operator delete 函数,在new的时候,就会调用自己重载的,但最后都会调用全局的::op...

2018-06-19 10:58:57 145

原创 duilib禁止双击最大化

简述用duilib开发了一个窗口,比如是登录窗口,那么这个窗口的窗口的双击最大化就毫无意义,甚至带来灾难,我们就要明确禁止这样的行为。方法一过滤WM_NCLBUTTONDBLCLK在HTCAPTION区的响应即可LRESULT MyWindow::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam){ //add...

2018-06-18 17:48:18 370

转载 duilib无标题窗口拖动

简述如题,因为在使用设置caption属性时会让整个窗口的可输入控件都不可触发焦点解决办法重载 LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);这里有关于介绍这个函数的 https://blog.csdn.net/liuxiaomao1988/article/deta...

2018-06-18 14:01:57 928

原创 duilib中CEditUI理解

简述因为最近去实习,公司中要求用duilib来进行界面绘制,在使用到CEditUI进行密码栏的设置时,因为CEditUI是没有默认信息的显示栏的。 如下图: 就是当没有焦点的时候会显示信息,这时候我才用的是给CEditUI设置文字,这种方法在对于普通的编辑框是没有问题的,当当用于对密码框的时候就会有问题。因为当没有点击密码框的时候应该是显示文字的,当点击了之后就应该设置编辑框为密码状态...

2018-06-13 20:21:21 1723

原创 C++内存分配理解一

内存分配一般我们在使用C++来创建一个内置对象或者一个类的时候。一般都没有想过底层是怎样去实现的。本文是根据侯捷的视频进行的一部分总结,只考虑堆上的分配。首先来看一张图 其实根据这张图我们可以去了解到C++基本内存分配规则了。在不考虑OS API的影响下,一切都是基于C语言当中的malloc/free来进行内存的分配和回收的。现在再来进一步看一下各个函数: 接下来在看一下具...

2018-06-02 11:39:54 3394

原创 LeetCode 删除链表的倒数第N个节点

删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解法一:遍历一遍并储存下所有节点的指针,...

2018-05-16 00:04:25 612

原创 LeetCode 删除链表的结点

删除链表的结点请编写一个函数,使其可以删除某个链表中给定的(非末尾的)节点,您将只被给予要求被删除的节点。比如:假设该链表为 1 -> 2 -> 3 -> 4 ,给定您的为该链表中值为 3 的第三个节点,那么在调用了您的函数之后,该链表则应变成 1 -> 2 -> 4 。解题思路:由于已经明确表示不是末尾的节点,所以可以采用删除给与节点的下一节点,删除之...

2018-05-15 23:58:23 1178

原创 C++问题汇总

简述本文主要针对一些C++比较偏门的一些问题总结,以下结果都是经过真机测试,环境为VS2015,32位。初始化问题1int *p1 = new int[10]; int *p2 = new int [10] ();结果,不带括号的未任意值。带括号初始化为0。 原因: 在C++primer(第5版)中关于new的讨论有: 1、new当个对象 new在自由空间分配内存,但其...

2018-05-14 17:45:03 293

原创 LeetCode最长公共前缀

最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,”flow”,”flight”] 输出: “fl” 示例 2:输入: [“dog”,”racecar”,”car”] 输出: “” 解释: 输入不存在公共前缀。 说明:所有输入只包含小写字母 a-z 。解题思路:一一比较即可...

2018-05-11 16:51:44 541

原创 LeetCode实现strStr()

实现strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll” 输出: 2 示例 2:输入: haystack = “aaa...

2018-05-11 15:50:36 593

原创 LeetCode字符串转整数(atoi)

字符串转整数(atoi)实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。...

2018-05-11 15:16:15 172

原创 LeetCode 验证回文字符串

验证回文字符串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama” 输出: true 示例 2:输入: “race a car” 输出: false解题思路: 数据清洗过后进行字符串奇偶判定,从左右正确位置分别...

2018-05-11 15:06:34 261

原创 LeetCode有效的字母异位词

有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = “anagram”, t = “nagaram” 输出: true 示例 2:输入: s = “rat”, t = “car” 输出: false 说明: 你可以假设字符串只包含小写字母。进阶: 如果输入字符串包含 unicode 字符怎么办...

2018-05-11 14:42:34 487

原创 LeetCode字符串中的第一个唯一字符

字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode” 返回 0.s = “loveleetcode”, 返回 2.注意事项:您可以假定该字符串只包含小写字母。解题思路: 遍历字符串,由于只包含小写字符可以采用26*2的标志数组标识,0位标志下标,1位标志出现了多少次。 最后取...

2018-05-11 14:30:43 554

原创 LeetCode颠倒整数

给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123 输出: 321 示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出: 21 注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。解题思路:把没一位数字提取出来,在...

2018-05-11 14:19:08 123

原创 LeetCode 反转字符串

反转字符串请编写一个函数,其功能是将输入的字符串反转过来。示例:输入:s = “hello” 返回:”olleh”解法一: 使用swap函数string reverseString(string s) { int length=s.length(); for(int i=0;i<length/2;++i) swa...

2018-05-11 14:03:53 399

原创 LeetCode合并两个有序数组

合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例:输入: nums1 = [1,2,3,0,0,0], m...

2018-05-11 09:05:37 954

原创 LeetCode旋转图像

旋转图像给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ],原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3]

2018-04-25 00:18:09 349

原创 LeetCode有效的数独

有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。1.数字 1-9 在每一行只能出现一次。 2.数字 1-9 在每一列只能出现一次。 3.数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入: [ [“5”,”3”,”.”,”.”,”

2018-04-25 00:15:48 1478

原创 LeetCode两数之和

两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]解法一: 其实效率已经挺高了 vector<int> twoSum(vector<int>& nums

2018-04-24 23:55:25 108

原创 LeetCode移动零

移动零给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。注意事项:1.必须在原数组上操作,不要为一个新数组分配额外空间。 2.尽量减少操作总数。解法一: 效率较低 void moveZeroes(vector<int>& nu

2018-04-24 23:49:59 200

原创 LeetCode加一

加一给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2:输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。解法一:

2018-04-24 23:45:12 244

原创 LeetCode两个数组的交集 II

两个数组的交集 II给定两个数组,写一个方法来计算它们的交集。例如: 给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。 跟进:如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums2 小很多,哪种

2018-04-24 23:38:35 274

原创 LeetCode只出现一次的数字

只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1] 输出: 1 示例 2:输入: [4,1,2,1,2] 输出: 4解法一: 效率挺高 int singleNumber(vector<int>& nums) {

2018-04-24 23:31:19 406

原创 LeetCode存在重复

存在重复给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。解法一: 效率不高bool containsDuplicate(vector<int>& nums) { if(nums.size()==0) return false; map<int,int>

2018-04-24 23:23:37 266

原创 LeetCode旋转数组

旋转数组将包含 n 个元素的数组向右旋转 k 步。例如,如果 n = 7 , k = 3,给定数组 [1,2,3,4,5,6,7] ,向右旋转后的结果为 [5,6,7,1,2,3,4]。注意:尽可能找到更多的解决方案,这里最少有三种不同的方法解决这个问题。[显示提示]提示:要求空间复杂度为 O(1)解法一: 效率过低 void rotate(vector<int>& nums, int k

2018-04-24 23:18:54 183

原创 QScrollArea的使用问题

简述最近在使用QScrollArea解决相关问题的时候,由于架构问题。出现了一些问题,导致继承QScrollArea的子类无法显示导航栏。问题的来源是博主把要想放在QScrollArea中的控件,直接放在了继承的子类中了。如下图 ,解决的办法是别把自己继承的子类,直接当成一个控件使用。要给它一个父控件。原理我也不知道。

2018-04-22 23:44:10 386

原创 Qt自定义右键菜单的方法

简述在使用Qt的时候,我们多少离不开菜单的时候,下面我们介绍两种自定义菜单的方法。重写QWidget::contextMenuEvent(QContextMenuEvent *)方法在使用这个方法的时候一定要保证 this->setContextMenuPolicy(Qt::DefaultContextMenu); 虽然默认的就是这个。void MyWidget::contextMenuEven

2018-04-22 23:37:05 696

原创 QLabel显示图片

简述我们在使用Qt的时候,经常会使用到QLabel,但当有些时候我们希望可以显示一些静态显示图片。这个时候我们可能会用到自定义的QLabel。 下面给出几个可行的方案。使用setPixmap(const QPixmap &)使用样式表重写事件下面来说一下,他们有优缺点,setPixmap在使用时要确定图片的大小, 样式表使用方便也可以实现图片的缩放,重写事件也可以实现。

2018-04-08 17:27:32 1426

常见聚类数据集人工数据和UCI数据都有

这里面是机器学习里面聚类所需的数据集,分为人工的二维数据集,如月牙形,双螺旋型等,和UCI真实数据集,是我搜集好久才弄出来的,有一些二维数据集是自己生成的,提供给大家做算法实验。

2019-03-19

工资管理系统(含源码)

工资管理系统毕业论文与源码: 目录 摘要 I ABSTRACT II 第一章 引言 1 1.1 项目开发背景 1 1.2 国内外研究现状 1 1.3 课题研究的意义 2 1.4 系统研究方法 2 第二章 开发环境及实现的技术 3 2.1 asp技术简介 3 2.2 IIS简介 3 2.3 SQL简介 4 2.4 ADO访问数据库 4 第三章 系统分析 6 3.1 可行性分析 6 3.1.1 技术可行性 6 3.1.2 经济可行性 6 3.1.3 操作可行性 7 3.2 需求分析 7 3.2.1 系统功能需求 8 3.2.2 职工需求描述 8 3.2.3 管理员需求描述 9 第四章 总

2019-03-19

空空如也

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

TA关注的人

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