自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 WPF——关于控件显示坐标与通过PointToScreen拿到的不一致的问题?

wpf

2023-03-22 14:35:49 898 1

原创 WPF——关于图像模糊的解决办法?

wpf trap

2023-03-20 11:33:39 708

原创 C#——疯狂Start计时器,最后停止,触发Timer_Elapsed的是第几次Start?第一次还是最后一次的?

timer使用建议

2023-03-01 16:31:23 288

原创 C# Process.HasExited准确性

Trap

2023-02-20 15:47:25 1334

原创 C#中 Json序列化与反序列的几种方法

C# 序列化与反序列化json

2023-01-31 18:19:53 2902

原创 WPF——后台代码实现将多张图片拼接成一张

wpf

2022-12-07 10:14:43 759

原创 C# 函数传递对象作为参数时都是采用引用的方式

C#

2022-11-30 17:20:39 666

原创 C# 检查文件夹数据完整性的一种思路

C# 检查文件夹数据完整性的一种思路

2022-11-22 16:36:35 634

原创 C# 递归获取文件夹文件数目并衡量代码性能

C# 递归获取文件夹文件数目并衡量代码性能

2022-11-21 19:04:26 279

原创 删除ubuntu后重启系统进入grub的解决办法

双系统删除ubuntu后,系统进入grub页面

2022-10-15 20:31:27 2531

原创 WPF——提高开发效率

1. 快速定义类的属性与函数输入ctor+Tab键:定义类的构造函数 public Student() { }输入prop+Tab键:定义不带private字段的属性 public int MyProperty { get; set; }输入propfull+Tab键:定义带private字段的属性 private int myVar; public int MyProperty { get { return myVar; } set { myVar =

2022-05-11 16:19:41 368

原创 WPF——主窗体常规改造

窗体设置窗体菜单栏框隐蔽WindowStyle="None"窗体可拖动MouseDown="Window_MouseDown" private void Window_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (e.LeftButton == System.Windows.Input.MouseButtonState.Pressed) this.Dr

2022-05-10 16:11:27 278

原创 C#——对Json格式的序列化与反序列化

类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Runtime.Serialization;namespace ConsoleApp1{ [DataContract] internal class Student { [DataMember]

2022-02-10 18:45:58 887

原创 WPF日报

2022/1/41. 动态图标在模板中添加Image控件,通过Source设定原始图标删除原来的IsMouseOver IsPressed添加Triggers,Proproty="IsMouseOver",Value="True",重置Image的Source添加Triggers,Proproty="IsPressed",Value="True",重置Image的Source <Trigger Property="IsMouseOver

2022-01-05 11:45:16 502

原创 WPF——入门笔记

一、布局StackPanel:水平或垂直排列元素,当剩余空间不足不会进行换行或换列WrapPanel:水平或垂直排列元素,当剩余空间不足会进行换行或换列DockPanel:根据容器的边界排列元素,Dock.Top,Left,Right,BottomGrid:类似于Table表格,可以灵活设置行和列UniformGrid:指定行和列的数量,均分有限的容器空间Canvas:使用固定的坐标设置元素的位置二、控件ContentControl:Button(按钮),GroupBox(组框)ItemC

2021-12-23 16:16:38 286

原创 leetcode——剑指offer1

树剑指offer1、先序中序重建二叉树——构建中序哈希加快搜索,先序找根,中序划分左右子树2、树的子结构——遍历树,看当前节点是否为子树结构,子树结构要求根左右均相等直至匹配完毕3、生成二叉树的镜像——交换节点的左右子树,递归处理左右子树4、对称的二叉树——递归判断左右子树交叉是否相等,注意递归结构true and false 的条件5、二叉搜索树与双向链表——中序遍历逻辑,cur->right=root,cur->right->left=cur,cur=cur->rig

2021-10-08 10:31:30 155

原创 设计模式——单例模式

一、单例模式要点1、构造函数设置为私有函数,不允许类外创建2、提供静态接口供客户获取单例3、将类指针设为静态,因为静态函数只能操作静态变量4、静态类指针类外初始化二、懒汉模式实例创建时机:第一次访问实例的时候创建模式类别:线程不安全、线程安全1、线程安全2//线程不安全之懒汉模式 class singlelazy {public: static singlelazy* getInstance() { if (lazy == nullptr)

2021-09-29 21:01:06 101

原创 C++——多态与虚函数的理解

一、问题多态的作用?当父类指针指向子类对象时,会根据虚函数表调用子类的虚函数重写的作用?当父类指针指向子类对象时,由于指针类型为父类,调用的依旧是父类的非虚函数当子类指针指向子类对象时,由于指针类型为子类,调用的是子类的非虚函数二、代码验证class Base{public: Base() { } void function() { cout << "base: not virtual" << endl; }

2021-09-23 18:48:31 145

原创 C++——关于构造函数与析构函数能否调用虚函数的问题

一、代码class A {public: A() { cout << "A construction." << endl;; virfun(); }; virtual ~A() { cout << "A disconstruction." << endl; virfun(); }; virtual void virfun() { cout

2021-09-14 09:11:07 235

原创 leetcode——双指针总结

二、高频题目88. 合并两个有序数组——双指针1、防止nums元素被改写,先摘录大的元素放入nums空白处2、交叉摘录数组元素3、单方摘录某数组元素

2021-08-27 11:10:49 209

原创 leetcode——BFS图总结

133. 克隆图——DFS1、特判2、递归条件,结点访问过,返回map对应的val3、克隆当前节点4、遍历当前节点邻居,进行邻居更新,同时邻居克隆5、返回当前节点——BFS1、特判结点为空时,返回nullptr2、申请哈希表,key用于记录原结点,value用于记录新结点3、克隆当前结点,放入队列4、广度遍历,访问队列头的邻居,若未访问过则克隆并加入队列,克隆当前结点的邻居5、返回克隆后key对应的val200. 岛屿数量——BFS1、遍历二维矩阵2、遇到1时,压入队列,对其进

2021-08-26 16:31:24 310

原创 leetcode——优先队列

二、高频题目973. 最接近原点的 K 个点——排序1、sort,修改cmp根据x2+y2对坐标点进行排序2、返回数据排序好的前k个元素——优先队列1、建立大根堆,将数据前k个元素放入堆,first为计算结果,second为坐标索引2、从第k+1个元素扫描,小于当前堆顶,则代替堆顶3、将堆转向量,这里需要建堆带上向量的索引23. 合并K个升序链表——分治合并1、写出两链表合并逻辑2、编写分治合并,根据数组的left和right进行递归结束,二分,合并操作3、调用分治合并——利用堆

2021-08-22 18:42:20 601

原创 leetcode——哈希表与哈希集合总结

一、基础介绍无序容器二、高频题目两数之和——哈希表记录数字与索引1、遍历数字,哈希表中查找target-nums[i]2、找不到,count[nums[i]]=i3、找得到,返回{i,count[target-nums[i]]}350. 两个数组的交集 II——哈希表记录数字与出现次数1、哈希表记录nums1数字出现次数2、遍历nums2,如果元素在hashtable出现次数大于0,计数-1,加入ans128. 最长连续序列——哈希集合去重1、哈希集合去重nums2、遍历哈希集合3

2021-08-18 12:19:38 592

原创 leetcode——栈总结

一、实现代码#include <iostream>#define MAXSIZE 100using namespace std;struct stack { int* base; int* top; int stacksize; stack() { base = new int[MAXSIZE]; top = base; stacksize = MAXSIZE; } //压入——top所指位置赋值,top++ int push(int e

2021-08-17 11:04:07 190

原创 项目——基于Oracle实现一个简易版的教务系统

一、背景知识教务系统包含多个对象,多种功能,它是一种多对象访问及维护的数据库。以下,本人根据现实需求,设定一个交易版的教务系统。二、需求分析(功能确定)三、概念分析(E-R图)设计实体:学生、老师、课程、班级现实关系:一个老师可以教多个课程,多个老师可以共同教一个课程一个老师可以教多个班级,多个老师可以共同教一个班级一个学生可以学习多个课程,多个学生可以共同学习一个课程一个学生只能属于一个班级,多个学生可以共同属于一个班级确定基础ER图实体与关系的属性实体属

2021-08-15 18:09:10 2584 1

原创 leetcode——队列总结

一、实现代码#include <iostream>#define MAXSIZE 100using namespace std;struct Queue { int *data; int front; int rear; Queue() { data = new int[MAXSIZE]; front = 0; rear = 0; } //压入——rear+1 int push(int elem) { if ((rear + 1) % MAXSIZE == fron

2021-08-14 17:48:18 327

原创 leetcode——链表总结

一、链表创建struct ListNode { int val; ListNode* next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode* next) : val(x), next(next) {}};二、高频题目206. 反转链表——链表原地反转1、初始化前驱pre为nullptr2、创建遍历指针cur3、wh

2021-08-13 16:39:53 194

原创 leetcode——排序总结

一、五大排序实现代码#include <iostream>#include <vector>using namespace std;//冒泡排序,遇到逆序对就交换,保证位置的最值性void Bubble_sort(vector<int> &nums) { //!注意j从i+1开始 for(int i=0;i<nums.size();++i) for(int j=i+1;j<nums.size();++j) if (nums[i

2021-08-13 10:34:06 402

原创 项目——基于MFC的成绩管理系统

一、准备工作二、设置实体类底层逻辑包含两个类,一个为Student,存储学生的个人信息,一个为Management,管理学生的个人信息;三、设置UI基础版1、工具控件:列表,编辑框,静态文本,下拉框,按钮;2、列表控件属性修改3、下拉列表属性修改...

2021-08-07 16:42:07 8926 23

原创 项目——C++规则下的数字解析器

一、语言规则数值(按顺序)可以分成以下几个部分:若干空格一个 小数 或者 整数(可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 整数若干空格小数(按顺序)可以分成以下几个部分:(可选)一个符号字符(’+’ 或 ‘-’)下述格式之一:至少一位数字,后面跟着一个点 ‘.’至少一位数字,后面跟着一个点 ‘.’ ,后面再跟着至少一位数字 一个点 ‘.’ ,后面跟着至少一位数字整数(按顺序)可以分成以下几个部分:(可选)一个符号字符(’+’ 或 ‘-’)至少一位数字注意:

2021-07-24 11:47:15 199 2

原创 C++——智能指针auto_ptr、unique_ptr、share_ptr、weak_ptr

auto_ptr相对于普通指针分配内存,需要自己new and delete,若不delete,就会造成内存泄露。auto_ptr智能指针可以做到,指针失效时自动回收内存空间。该指针可以进行复制构造与赋值构造,所以可能造成两个(或多个)指针指向同一内存空间的情况,导致内存空间被释放两次(或多次),造成错误。unique_ptr为了改进auto_ptr的漏洞,unique_ptr智能指针不允许复制构造与赋值构造,也即编程开始便约束了指针无法指向同个空间,避免内存空间被多次释放的错误。但unique_p

2021-07-21 17:52:40 284 3

原创 leetcode——377. 组合总和 Ⅳ

思路——动态规划无需打印路径的使用动态规划代替回溯dp[j]含义:target为j时,使用[0~i]的排列数递推公式:dp[j]+=dp[j-num[i]]dp初始化,第一个元素为1,其他元素为0遍历顺序:先背包后物体(排列) 先物体后背后(组合)代码class Solution {public: int combinationSum4(vector<int>& nums, int target) { vector<int> d

2021-07-21 08:54:34 117

原创 leetcode——72. 编辑距离

思路——动态规划dp[i][j]含义:代表以i为结尾下标,与以j结尾下标的字母之间的最小编辑距离递推方程:4个操作,不动,word1增,word2增,替换元素if(word[i-1]==word[j-1]) dp[i][j]=dp[i-1][j-1];else dp[i][j]=min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1])+1;dp数组初始化:空字符与word1 word2的最小编辑距离遍历顺序:从左至右,从上至下返回结果:dp[word1.siz

2021-07-20 20:28:21 112

原创 leetcode——131. 分割回文串

思路——回溯单层分割路径 如“abc” 则有 a,ab,abcsubstr(begin,len)——记住第二个参数为len回文串判断,只需对size=1特殊处理,其他进行反转判断是否相等代码class Solution { vector<vector<string>> ans; vector<string> path; void backtracing(string& s, int startindex) {

2021-07-20 18:39:52 89

原创 leetcode——526. 优美的排列

思路全排列基础上多加一个条件返回答案长度,只需要申请一个变量计数,并动态记录path的长度代码class Solution { int count = 0; void backtracing(int n, vector<int>& used,int path_len) { if (path_len == n) { count++; return; } for (i

2021-07-20 08:55:28 112

原创 leetcode——77. 组合

思路无需去重——无需排序剪枝——当前路径的最大深度需大于等于k不变的参数 使用 引用参数代码class Solution { vector<vector<int>> ans; vector<int> path; void backtracing(int& n,int& k,int idx){ //递归终止条件 if(path.size()==k){ ans.emp

2021-07-19 21:56:07 78

原创 leetcode——47. 全排列 II

思路需要对当前序列未访问索引进行标记需要去重,同层重复元素不能取传入参数最好为引用,减少内存开销代码class Solution { vector<vector<int>> ans; vector<int> path; void backtracing(vector<int>& nums,vector<int>&used){ //递归终止条件 if(path.size(

2021-07-19 21:33:08 109

原创 leetcode——90. 子集 II

思路如何去重?——同层重复元素不再选取,同一条路的重复元素可选取如何实现?——对当前使用的元素作used=1,used=0即同层相同元素代码class Solution {private: vector<vector<int>> result; vector<int> path; void backtracking(vector<int>& nums, int startIndex, vector<bool&

2021-07-19 21:02:51 85

原创 leetcode——39. 组合总和

思路——BFS如何剪枝?——排序、sum与target判断、大于target及时剪枝如何去重?——保证后元素 大于等于 前元素代码class Solution {public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) { sort(candidates.begin(),candidates.end());

2021-07-19 12:31:09 95

原创 leetcode——17. 电话号码的字母组合

思路——BFS将第一个数字对应的字母序列依次入队对剩余数字进行遍历,获取其int值,再定位到指定的字母序列若队列头元素长度小于目标长度-1,则进行广度搜索数字序列遍历完毕,当前队列剩余的元素即答案代码class Solution {public: vector<string> ans; vector<string> sList={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; //字

2021-07-18 22:02:55 128

空空如也

空空如也

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

TA关注的人

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