- 博客(152)
- 资源 (6)
- 收藏
- 关注

原创 设计模式
设计模式,是学一遍忘一遍,一遍又一遍,所以就重新收拾心情,再次学习。为了将代码的重用性和可维护性,就需要多学习设计模式。设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式常规有23种设计模式分为三类:创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式(7种):适配器模式、装饰者模式、桥接模式、组合模式、代理模式、外观模式、享元模式行为型模式(11种):策略模式、
2020-12-04 12:10:44
400
原创 m_sAppWord.CreateDispatch((L“Kwps.Application“), NULL) 失败问题
m_sAppWord.CreateDispatch((L"Kwps.Application"), NULL) 失败问题
2024-02-20 22:00:58
367
原创 map基本函数
map 的基本操作函数: C++Maps 是一种关联式容器,包含“关键字/值”对 begin()返回指向 map 头部的迭代器 clear()删除所有元素 count()返回指定元素出现的次数 empty() 如果 map 为空则返回 true end() 返回指向 ma...
2022-04-30 17:45:32
1148
转载 C/C++中【提高程序效率的9个简单方法】及【20个重点笔记】
一、程序效率的提升(1)如果选择为if---if---if--,则应选择if--else if--else或者是switch-case;后两者比较的次数少,效率高;例如:if(1==a) {dosomething;}if(2==a) {dosomething;}if(3==a) {dosomething;}以上三个if都得执行,但是下面的:switch(a){case 1:do something; break;case 2:do something; break;case 3:do s
2022-04-01 14:59:00
2043
原创 LeetCode-35. 搜索插入位置
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。class Solution {public: int searchInsert(vector<int>& nums, int target) { int nLeft = 0; int nRight = nums.size() - 1; int nMid =
2021-07-15 14:43:21
144
原创 LeetCode-278. 第一个错误的版本
问题描述:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。// The ..
2021-07-15 09:14:46
263
原创 LeetCode-704.二分查找
问题描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。class Solution {public: int search(vector<int>& nums, int target) { int nLeft = 0; int nRight= nums.size() - 1; int nMid = 0
2021-07-15 08:55:51
122
原创 LeetCode--1 两数之和
#include <map>class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { map<int, int> mapNum; map<int, int>::iterator iter = mapNum.begin(); for(int i = 0; i < nums.size(.
2021-07-14 17:51:24
204
1
转载 Socket 常见错误码
Socket error 0 - Directly send errorSocket error 10004 - Interrupted function callSocket error 10013 - Permission deniedSocket error 10014 - Bad addressSocket error 10022 - Invalid argumentSocket error 10024 - Too many open filesSocket er...
2021-07-08 16:31:23
2866
原创 RGB565 转 RGB
void RGB565ToRGB(unsigned short n565Color){ short nRed = (n565Color & 0xf800) >> 8; short nGreen = (n565Color & 0x07e0) >> 3; short nBlue = (n565Color & 0x001f) << 3;}
2021-07-01 17:25:29
498
原创 CFile::Read()读取中文乱码问题
if (file.Open(strPath, CFile::modeRead)){ file.Seek(0, CFile::begin); nFileLen = file.GetLength(); pbuf = new char[nFileLen + 1]; file.Read(pbuf, nFileLen); pbuf[nFileLen] = 0; file.Close(); //用CA2W 转换格式 strbuf = CA2W(pbuf, CP_UTF8); if
2021-06-02 14:37:40
918
原创 COleDateTime 时间在秒上加减
因为无法在COleDateTime上直接进行加减,需要将COleDateTime 转成CTime,再进行操作。COleDateTime 转 CTimeSYSTEMTIME sys_time;ole_time.GetAsSystemTime(sys_time);CTime c_time;c_time = CTime(sys_time);然后用c_tiem 进行加减秒。CTime Time(L"");Time.Format(“%Y-%m-%d %H:%M:%s”);...
2021-05-10 11:50:48
496
原创 c++打印预览英文问题
MFC打印预览有时是中文界面,有时是英文界面,是英文动态库调mfc120u.dll用不同造成的。不同的库已经上传:https://download.youkuaiyun.com/download/weixin_37999268/16767358
2021-04-20 09:57:37
348
原创 小波包分解、重构 matlab代码
clear allclose allclc% 加载信号load leleccum;% 采样点x = leleccum(300:2348);% x = importdata(‘V1.txt’);n = 3;wpt=wpdec(x,n,‘dmey’);% Plot wavelet packet tree (binary tree)plot(wpt)%% wavelet packet coefficients.default:use the front 4.cfs0=wpcoef(wpt
2021-02-05 10:59:29
3327
转载 手动实现一维离散数据小波分解与重构
前言本文集中前面主要介绍了离散数据的傅里叶变换,并且得到了较好的效果!那既然有了傅里叶变换这个工具,为什么还需要小波变换呢?因为:傅里叶变换只能告诉你原始信号中有哪些频率,但不能告诉你这些频率的信号出现在什么时间!也就说明:如果信号是"时变"的(频率随着时间是改变的),那么单纯用傅里叶变换所能反映的信息就十分有限了!因此,针对时变信号,我们使用小波变换。图1展示"时变信号"与"时不变信号"区别:图1:时不变信号与时变信号时不变与时变的区别,看下面的实现的代码就很轻易理解:x = 0:0.001:1
2021-02-03 16:52:10
3286
1
原创 mysqld: [ERROR] Found option without preceding group in config file D:\MySql\MyS ql\my.ini at line 1
创建mySql服务器时错误的解决方法。将下吗配置写入文本文件,并重命名为my.nasi.即可 不是my.ini[client]设置mysql客户端默认字符集default-character-set=utf8[mysqld]设置3306端口port = 3306设置mysql的安装目录basedir=C:\web\mysql-8.0.11设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错datadir=D:\MySql\MySql
2021-01-20 14:27:55
1947
原创 Java FileDialog解决文件过滤问题
FileDialog fileDialog = new FileDialog(new Frame(), “选择文件”, FileDialog.LOAD);fileDialog.setFile(".doc;.txt");fileDialog.setVisible(true);String pathString = fileDialog.getDirectory() + fileDialog.getFile();System.out.println(pathString );
2021-01-05 14:20:05
557
转载 Java Swing 图形界面开发简介
学习一下Java界面开发借鉴学习:https://blog.youkuaiyun.com/xietansheng/article/details/72814492
2020-12-30 15:09:57
123
原创 git clone不成功 或许可以这样做
Git Bash Heregit config --system --unset credential.helpergit clone ……
2020-12-22 17:31:20
228
原创 判断文档是office打开,还是WPS打开
word和Excel文档的类型可以区分当前文档是用office打开还是wps打开,所以我们就获取文档类型,进行判断。wps打开的文档,它的文档类型是DOC、DOCX、XLS、XLSXoffice打开的文档,它的文档类型是Microsoft*****之类的//strPath 文档路径//strExt 文档后缀BOOL OpenByWps(CString strPath, CString strExt){ BOOL bWps = FALSE; //获取文件类型 CString strVal(
2020-12-09 18:31:51
3773
原创 判断是否兼容WPS
//判断当前是否用WPS打开BOOL OpenByWPS(){ BOOL bOpenByWPS = FALSE; HKEY hKey; //WPS注册表路径 LPCTSTR strSubKey = L"Software\\Kingsoft\\Office\\6.0\\Common"; long lRet = ::RegOpenKeyEx(HKEY_CURRENT_USER, strSubKey, 0, KEY_QUERY_VALUE, &hKey); if (lRet == ERRO
2020-12-09 17:22:41
412
原创 判断电脑是否安装WPS
BOOL InstallWPS(){ BOOL bInstall = FALSE; HKEY hKey; LPCTSTR strSubKey = L"Software\\Kingsoft\\Office\\6.0\\Common"; long lRet = ::RegOpenKeyEx(HKEY_CURRENT_USER, strSubKey, 0, KEY_QUERY_VALUE, &hKey); if (lRet == ERROR_SUCCESS) { CString strV
2020-12-09 17:03:49
1660
原创 设计模式:解释器模式
解释器模式(Interpreter)介绍:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。解释器模式需要解决的是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构件一个解释器,该解释器通过解释这些句子,来解决该问题。优点:扩展性好。由于在解释器模式中使用类来表示语言的文法规则,因此可以通过继承等机制来改变或扩展文法。容易实现。在语法树中的每个
2020-12-09 15:19:42
141
原创 设计模式:中介者模式
中介者模式(Mediator)介绍:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互中介者模式又叫调停模式,它是迪米特法则的典型应用。如果一个系统里各个对象之间存在多对多的相互关系,可以将对象之间的一些交互行为从各个对象中分离出来,集中封装在一个中介者对象中,使其耦合松散,并由中介者统一协调。通过中介者,对象之间的多对多关系就简化了相对更简单的一对多关系。优点:类之间各司其职,符合迪米特法则。降低了对象之间的耦合性,使得对象易于独立
2020-12-09 14:50:35
132
原创 设计模式:访问者模式
访问者模式(Visitor)介绍:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。优点:扩展性好。能够在不修改对象结构中的元素的情况下,为对象结构中的元素添加新的功能。复用性好。可以通过访问者来定义整个对象结构通用的功能,从而提高系统的复用程度。灵活性好。访问者模式将数据结构与作用于结构上的操作解耦,使得操作集
2020-12-09 12:00:50
139
原创 设计模式:状态模式
状态模式(State)介绍:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。优点:结构清晰,状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。将状态转换显示化,减少对象间的相互依赖。将不同的状态引入独立的对象中会使得状态转换变得更加明确,且减少对象间的相互依赖。状态类职责明确,有利于程序的扩展。通过定义新的子类很容易地增加新的状态和转换。缺点:状态模式的使用必然会增加系统的
2020-12-09 09:54:45
89
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人