- 博客(36)
- 资源 (4)
- 收藏
- 关注
原创 int类型表示无穷大的值
int类型的取值范围为 0xffffffff(-2,147,483,648) - 0x7fffffff(2,147,483,647)尽管0x7fffffff为int类型最大值,但一般不使用该值表示无穷大值;因为0x7fffffff不能满足“无穷大+有穷数 = 无穷大”,它会变成一个很小的负数。0x3f3f3f3f的十进制为1061109567,也是109的级别,和0x7fffffff在一个数量级,而且一般情况下,数据都是小于109的,0x3f3f3f3f加上一个小于109的数时,不会溢出,因此常用0x3
2023-06-17 18:21:22
603
原创 算法之分治算法
将一个大规模的问题分解为若干规模较小的相同子问题,分而治之。如《孙子兵法》所云“凡治众如治寡,分数是也”,即将军队分为各级组织,将帅只需通过管理少数几个人就可以统领全军。
2023-06-11 21:59:33
460
原创 原型模式 - Prototype
定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。举例:学校要制造学生档案,同一个班的同学,大部分信息是相同的,可以先制作一份,填好相同信息,然后以其为原型,复制多份,再填写同学们不同的信息;这要比一份一份的填写,简便很多类图注:这里为了约束子类,将其抽象为clone函数;若无子类,实现拷贝构造即可。客户端#include "StudentInfo.hpp"i...
2019-07-07 17:55:51
120
原创 建造者模式 - Builder
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。举例:学校需要制造桌子,桌子高低大小不等源码地址
2019-07-07 16:20:57
152
原创 抽象工厂模式 - Abstract Factory
定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。举例:学校里需要制造一年级的语文书、数学书,二年级的语文书、数学书。源码地址...
2019-06-28 21:15:23
112
转载 设计模式简介
摘自“菜鸟教程”设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可...
2019-06-23 16:06:17
138
原创 开放封闭原则-Open Closeed Principle-OCP
定义: 对软件实体(类、模块、函数),扩展可以开放,修改应该封闭。优点:可维护可扩展可复用灵活性高举例:学校里有一名老师教语文// Teacher.hclass Teacher{public: void teach();};// Teacher.cpp#include "Teacher.h"#include <iostream>void Teac...
2019-06-16 20:40:07
264
原创 迪米特原则 - Least Knowledge Principle - LKP
定义: 一个类应该对其他类保持最少的了解。释义: 只有直接的朋友通信。直接的朋友:出现在成员变量,方法参数,方法返回值中的类。出现在局部变量中的类则不是直接朋友。举例:如校长想知道学校全体同学的名字,只需与各班主任沟通就行,无需与所有同学沟通学生类#include <string>class Student{public: Student(std::string na...
2019-05-04 21:38:52
180
原创 接口隔离原则 - Interface Segregation Principle - ISP
定义: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。释义:类依赖的接口,其含有的方法都是自己依赖的。使用时,注意以下几点:接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为...
2019-05-04 12:08:53
130
原创 依赖倒置原则 - Dependence Inversion Principle - DIP
定义:高层模块不应该以来低层模块,两个都应该依赖抽象抽象不应该依赖细节,细节应该依赖抽象核心思想:针对接口编程,不要对实现编程使用时,应遵循以下3点低层模块或高层模块尽量都要有抽象类,或者两者都有变量的声明类型尽量是抽象类使用继承时遵循里式替换原则举例:语文老师教语文可以有多种途径,如课堂上面对面、在线视频等教学方式接口,所有的教学方式实现该接口#include <...
2019-05-03 23:22:40
148
原创 里氏替换原则 - Liskov Substitution Principle - LSP
定义:子类可以扩展父类的功能,但不能改变父类原有的功能。有四层含义:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法子类中可以增加自己特有的方法当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格举例:老师类已经含有了getName函数,而语文老师类重新定义了g...
2019-05-03 20:57:04
256
原创 单例模式(Singleton)
解释:保证一个类仅有一个实例,并提供一个访问它的全局访问点。举例: 一个班里只能有一个班主任,无论何时找班主任,都指向同一个人。班主任类HeadTeacher.h#pragma once// 班主任类class HeadTeacher{public: ~HeadTeacher(); // 访问唯一实例的接口 static HeadTeacher* getInstance()...
2019-05-02 14:53:26
148
原创 Qt5.9.7 移植到Hi3536,支持OpenGL和tsLib
Qt 5.9为LTS版本软件下载http://download.qt.io/archive/qt/5.9/5.9.7/single/说明:zip为windows版; tar.xz为linux版解压软件 xz qt-everywhere-opensource-src-5.9.7.tar.xz tar -xf qt-everywhere-opensource-src...
2019-02-27 11:02:54
4332
1
原创 单一职责原则-Single Responsibility Principle-SRP
定义:就一个类而言,应该仅有一个引起其变化的原因。问题:类T负责两个不同的职责P1, P2。
2019-02-11 22:02:53
154
原创 面向对象设计原则及设计模式
面向对象设计原则简介单一职责原则里式替换原则依赖倒置原则接口隔离原则迪米特原则开放关闭原则设计模式创建型模式抽象工厂模式建造者模式工厂方法模式原型模式单例模式结构型模式适配器模式桥接模式组合模式装饰模式外观模式享元模式代理模式行为模式职责链模式命令模式解释器模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模板方法模式访...
2019-02-11 21:34:33
147
原创 Hi3535 移植valgrind
首先值得注意: Valgrind要求硬件为ARMv7 和 VFP, 而Hi353无VFP, 因此valgrind在Hi3535上是不可用的。移植过程如下:1. 下载valgrind最新版本,我使用的版本为valgrind-3.13.0.tar.bz2http://valgrind.org/downloads/current.html2. 将下载的valgrind包,放置合适文件夹,并压文件tar ...
2018-06-14 11:16:44
3104
转载 Entity Framework Code First
1. 数据库连接 http://www.cnblogs.com/libingql/p/3351275.html2. 属性映射约定 http://www.cnblogs.com/libingql/p/3352058.html3. 关系映射约定 http://www.cnblogs.com/libingql/p/3353112.html4. 执行SQL语句、视图及存
2018-02-02 16:28:26
143
转载 区域性名称和标识符
固定区域性、非特定区域性和特定区域性这些区域性通常分为三个集合:固定区域性、非特定区域性和特定区域性。固定区域性不区分区域性。可以使用空字符串 ("") 按名称或者按区域性标识符 0x007F 来指定固定区域性。它与英语语言关联,但不与任何国家/地区关联。它几乎可用在要求区域性的“全局化”命名空间中的所有方法中。非特定区域性是与某种语言关联但不与国家/地区关联的区域性。
2018-01-03 13:51:08
1438
原创 shell使用sql脚本进行sqlite3数据库更新
转载请注明出处!1. 编写sql脚本upgradeDB.sql,其中就是普通sql语句update tablename set colname=value where ID=value;2. 编写shell脚本#!/bin/shsqlite3 -init upgradeDB.sql crane.db << EOF.quitEOF说明:直接使用“sqlite
2017-12-02 17:02:34
10440
原创 ARM移植lftp
转载请注明出处版本:4.8.3依赖的库(需在编译lftp前,编译完成,编译方法可自行百度or谷歌):ncursesreadline(需要5.0版本之上)opensslzlib1. 下载lftp包http://lftp.yar.ru/ftp/lftp-4.8.3.tar.gz2. 解压tar -zxf lftp-4.8.3
2017-12-01 17:37:35
2021
原创 ARM-Linux使用ntpdate同步本机时间
1. 下载 ntp-4.2.8p8.tar.gz(注:ntpdate依赖openssl,需现编译openssl)2. 解压 tar -zxf ntp-4.2.8p8.tar.gz cd ntp-4.2.8p83. 在ntpd/ntp_loopfilter.c文件末尾增加"MOD_NANO"宏定义 #ifndef MOD_NANO #def
2017-10-18 14:59:25
3546
原创 驱动中可以使用触发异常的函数
摘自《Windows驱动开发技术详解》触发异常函数函数描述ExRaiseStatus用指定状态代码触发异常ExRaiseAccessViolation触发STATUS_ACCESS_VIOLATION异常ExRaiseDatatypeMisalignment触发STATUS_DATATYPE_MISALIGNMEN
2017-07-29 17:31:58
511
原创 修改QTreeWidget字体大小,列头字体并未相应改变
现象如下图:16 号字体30号字体原因:设置了样式表,导致字体设置失效,具体原因还不清楚。
2017-07-26 15:49:49
5427
原创 LNK2019 无法解析的外部符号 DriverEntry,该符号在函数 FxDriverEntryWorker 中被引用
函数定义:NTSTATUS DriverEntry( PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegistryPath){KdPrint(("%wZ", pRegistryPath));pDriverObject->DriverUnload = UnLoadDriver;return STATUS_SUCCESS;
2017-07-18 11:34:41
6697
3
原创 Qt 4.8.6 触屏
交叉编译时,需使用如下红色参数:./configure --prefix=/opt/qt4.8.6 -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-
2017-07-07 17:57:08
476
原创 Hi3535录制音频无声音
音频录制和播放,可以参考SDK中的示例。问题描述: Hi3535录制音频时,音频文件正常产生,文件格式也正常,播放时无声音解决:需要将两个管脚置为有效(硬件设计不同,可能管脚不同,请查找对应管脚)#define MIC_SHDN GPIO0_3 // MIC放大器关断控制管脚 0-Mute 1-work#define MIC_CTL GPIO_4 /
2017-07-07 17:48:00
435
原创 QT中坐标系转换
控件坐标系转全局坐标系QPoint QWidget::mapToGlobal ( const QPoint &pos ) const例:源码:QLineEdit lineEdit;lineEdit.setGeometry(100, 100, 200, 100);qDebug() qDebug() 执行结果:全局坐标系转控件坐标系QPoint QW
2017-01-10 14:20:59
3153
原创 使用qmake编译QT工程,手写源码
以创建,编译“HelloWorld”工程为例 ,此例为手写源码1. 创建“HelloWorld”工程文件夹2. 创建“HelloWorld.cpp”,并编写源码3. 运行Qt for Desktop工具4. 切换到“HelloWorld”文件夹5. 键入“qmake -project”,生成QT的".pro"工程文件6. 键入“qm
2016-11-20 15:44:19
2542
2
原创 使用QDir::entryList获取文件列表,返回为空
若要搜索指定目录下所有文件(包含文件夹),使用QDir::entryList时,Filter需指定“QDir::Dirs|QDir::Files”,否则无法获取到文件列表,若需忽略“./,../”等,filter还需加上“QDir::NoDotAndDotDot”,或自行根据文件名,过滤! 注:获取文件名方法:QFileInfo(dirPath,fileName)
2016-11-13 12:04:13
6450
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人