成长进步
giantmfc123
这个作者很懒,什么都没留下…
展开
-
删除mysql数据库,并优化空间
1. 删除180天以上的数据delete from handle_log_inf where Date(timeStamp) <= DATE(DATE_SUB(NOW(),INTERVAL 180 DAY));optimize table handle_log_inf;delete from running_log_inf where Date(timeStamp) <= DATE(DATE_SUB(NOW(),INTERVAL 180 DAY));optimize table run原创 2022-03-28 17:15:04 · 1056 阅读 · 0 评论 -
cmake使用案例
1. 新建一个.c或者.cpp文件#include <stdio.h>#include <stdlib.h>void main(){ print("hello world");}2. 编写CMakeLists.txt#versioncmake_minimum_required(VERSION 2.8)#projectproject (demo1)add_executable(demo main.cpp)3. 编译cmake 或者原创 2022-01-18 14:21:19 · 214 阅读 · 0 评论 -
寒窑赋-吕蒙正
天有不测风云,人有旦夕祸福。蜈蚣百足,行不及蛇;雄鸡两翼,飞不过鸦。马有千里之程,无骑不能自往;人有冲天之志,非运不能自通。盖闻:人生在世,富贵不能淫,贫贱不能移。文章盖世,孔子厄于陈邦;武略超群,太公钓于渭水。颜渊命短,殊非凶恶之徒;盗跖年长,岂是善良之辈。尧帝明圣,却生不肖之儿;瞽叟愚顽,反生大孝之子。张良原是布衣,萧何称谓县吏。晏子身无五尺,封作齐国宰相;孔明卧居草庐,能作蜀汉军师。楚霸虽雄,败于乌江自刎;汉王虽弱,竟有万里江山。李广有射虎之威,到老无封;冯唐有乘龙之才,一生不遇。韩信未遇之时,无转载 2020-05-19 14:42:50 · 352 阅读 · 0 评论 -
类模板派生模板类
定义类模板template <class T>class Person{public: Person(T name, int age);private: T m_name; int m_age;};派生模板类template <class T>class DeriveClass : public Person<T&g...原创 2019-03-29 00:14:48 · 212 阅读 · 0 评论 -
让代码变得更好阅读
对齐文字,括号和代码string str = "message";int height = 5;截断长句子int maxValue = ( currValue > 5) ? JohnWeight : KingWeight;通过字符图形分割代码块/************************//** Something important**//...原创 2019-04-02 00:09:27 · 165 阅读 · 0 评论 -
《程序员思维修炼》读后感(2)
十年成就专家 不要心急 有大目标积极的实践需要四个条件 需要一个明确定义的任务 任务要有挑战性 任务环境要有反馈 提供重复犯错和纠正错误的机会成为专家的诀窍 知道你不知道什么 通过观察和模仿来学习 实践,实践,再实践 思考能够为团队带来什么...原创 2019-04-01 22:59:24 · 859 阅读 · 0 评论 -
《程序员思维修炼》读后感(1)
德雷福斯模型德雷福斯兄弟考察了各个行业的技术能手,归纳了从新手到专家的5个阶段。通过这5个阶段,对照自身水平,有个大致了解,知道往哪个方向努力,最终成为行业专家。每个人都可以通过学习提升自己的经验,不断练习,变成专家级别。这里提到的经验,指的是通过实施这项技术促进了思维的改变。新手 在该技能领域很少或根本没有经验 需要指令清单高级新手 开始多多少少的摆脱固定的规则 尝...原创 2019-04-01 22:31:47 · 201 阅读 · 0 评论 -
c++面向对象高级编程知识点(4)
1. new [] 一定要搭配 delete [],否则会造成内存泄漏2. 组合关系的构造关系:先构造成员类,再构造自己的类。析构关系:先析构自己的类,然后析构成员类。3. 组合是将类作为成员变量,委托是将类作为成员指针变量。4. 继承关系的构造关系:先构造父类,再构造子类。析构关系:先析构自己,再析构父类。5. 非虚函数:子类无法覆写(override)子类虚函数:子类可以覆写子类,...原创 2019-04-07 16:18:35 · 73 阅读 · 0 评论 -
静态参数和静态函数在类中的使用
1. 构建一个账号类Accout, 利率设置为静态变量。1) 静态变量一般要赋初值,也可以不赋值。2)通过两种方式来改变静态变量:类名调用,或者实例化对象//Account.h#ifndef ACCOUNT_H#define ACCOUNT_H#include <iostream>using namespace std;class Account{publi...原创 2019-04-07 15:13:41 · 776 阅读 · 0 评论 -
c++面向对象高级编程知识点(3)
1. 重载操作符inline A& A::operator += (const A& r){ this->a = r.a; return this;}2. 带指针的类,构造函数一定要自己写。用深拷贝,而不是浅拷贝。class String{public: String(const char* cstr = 0); //带...原创 2019-04-07 11:25:12 · 165 阅读 · 0 评论 -
c++中负号和减号的操作符重载
1. 创建complex复数类#ifndef COMPLEX_H#define COMPLEX_H#include <iostream>using namespace std;class complex{public: complex(int re = 0, int im = 0) { real = re; ima...原创 2019-04-07 11:23:28 · 8032 阅读 · 1 评论 -
c++面向对象高级编程知识点(2)
1. 传函数参数引用前面加const, 传地址且不会修改该参数int GetValue(const A& a){ return a;}2.函数返回值尽量传引用int& GetValue(const A& a){ return a;}3. friend 能够访问private成员变量和函数。4. 相同class的各个对象互...原创 2019-04-06 23:30:13 · 63 阅读 · 0 评论 -
c++面向对象高级编程知识点(1)
1. 头文件(.h)和源文件(.cpp) 分开写。头文件声明,源文件方法实现。2. 头文件保护#ifndef PATH_CLASSNAME_H#define PATH_CLASSNAME_H//自己定义的类或者其他声明#endif //PATH_CLASSNAME_H3. 短小精悍的函数,可以写成inline函数。4.在构造函数初始化列表中初始化变量,提高效率...原创 2019-04-06 23:09:34 · 132 阅读 · 0 评论 -
面向对象设计原则的使用说明
1. 单一职责原则主要用于类的设计。当我们想出或者设计出一个类的原型后,使用该原则核对类的设计是否符合要求。2. 里氏替换原则主要用于指导类继承的设计。当设计类的继承关系时,判断继承关系是否满足该原则。3. 接口隔离原则主要用于接口的设计。4. 依赖倒转原则主要用于指导抽象。当设计类之间的依赖关系时,用于检查是否符合该原则。5. 开闭原则/高内聚,低耦合原则是一个总的指导思想,如...原创 2019-04-06 15:17:35 · 214 阅读 · 0 评论 -
类模板template类内实现
与函数模板类似,类模板也是采用template 来实现。首先定义一个类,在.h文件中写函数实现。template<class T1, class T2>class ClassTemplate{public: ClassTemplate(T1 name, T2 age) { m_name = name; m_age = age...原创 2019-03-28 22:21:43 · 520 阅读 · 0 评论 -
数组大小的计算
当我们创建一个数据,想要计算数组的大小: int arr[5] = {1,2,3,4,5}; int arrsize = sizeof(arr)/sizeof (arr[0]); int arrsize2 = sizeof(arr)/sizeof (int); qDebug() << "before: arrsize = " << arrsi...原创 2019-03-28 22:51:51 · 11979 阅读 · 0 评论 -
自己定义函数类型
除了系统定义的数据类型外,我们也可以使用typedef 定义我们想要的数据类型。比如说int, 正常情况下,我们可以表示身高,体重,长宽等数据。但是如果定义的数据名意义不是很明确,就会导致阅读不方便。我们可以使用自己定义的数据类型来定义数据typedef int Height;Height human;Height desk;...原创 2019-04-25 10:57:50 · 659 阅读 · 0 评论 -
Log4qt 使用手册
Windows获取log4qt的源代码下载地址:log4qt 编译生成动态链接库 参见步骤 或者使用我已经编译好的库文件log4qtLib 使用log4qt动态链接库 在.pro文件中加入包含文件 添加logmanager, logmanager主要包含头文件,和初始化log。这个是我自己写的,也可以不使用该类。在此处配置log4qt.properties的...原创 2019-04-19 00:48:39 · 1279 阅读 · 0 评论 -
OKR(Objectives and Key Results)学习心得
OKR(Objectives and Key Results)全称是“目标和关键成果”,是企业进行目标管理的一个很有效的系统。OKR仍然强调具体、可衡量、相关联、有明确时间,但不强调可实现,而强调有雄心的。安格斯在应用OKR的过程中,弱化了任务的概念,更强调团队合作。他认为要“把OKR当作一种沟通方式,让所有员工都清晰地了解核心目标及任务”。Swipely会把公司的所有目标都公开,让大家都能知道公...转载 2019-04-26 11:57:25 · 2744 阅读 · 0 评论 -
代码重构 之 指针初始化
1. 指针在初始化时,都要赋初值,推荐使用nullptr来代替0int *p = 0;替换为int *p = nullptr;2.,当指针被delete后,也要赋值为nullptrint *p = new int;*p = 2;delete p;p = nullptr;...原创 2019-04-09 09:54:21 · 246 阅读 · 0 评论 -
面向对象设计六原则之 高内聚低耦合原则
1. 内聚2. 耦合3. 高内聚,低耦合高内聚,指的是一个方法的改变或者添加,影响的类实例越少越好。否则的话,改动一点,就要改变很多模块的编译,测试,部署,工作量巨大。比如一个Person类,主要有study, Play, action的方法。根据这三种方法,实例化teacher, coach, director.如果teacher增加exam类,就要重新编译coach,directo...原创 2019-04-02 23:46:24 · 2711 阅读 · 0 评论 -
《面向对象葵花宝典》读后感(3)--耦合
耦合:模块之间的依赖程度。耦合和内聚是相反的。耦合关注的是模块之间的依赖程度。内聚关注的是模块内的结合程度。耦合的分类:1. 无耦合好处:不依赖其他模块,减少了调用接口的出错几率。坏处:什么都要自己造轮子,比如log, database.2. 消息耦合耦合关系体现在消息的传递上,仅仅是一个信号或者调用类的方法。既不需要传参数,也不需要了解被调用方的内部逻辑,更不需要控制调用...原创 2019-04-02 23:33:00 · 203 阅读 · 0 评论 -
C++中引用的本质
1. 引用在c++内部实现是一个常量指针, 占用空间大小与指针相同Type& var; 等价于 Type * const name;2. 举例说明: int aa = 1; int &bb = aa; int *cc = &aa; cout << "aa = " << aa << "...原创 2019-04-08 18:31:42 · 108 阅读 · 0 评论 -
重载ostream 左移操作符
构造一个类#include <iostream>using namespace std;class Overload{public: Overload(); private: int a;};重载左移操作符friend ostream& operator<<(ostream& os, Overload&...原创 2019-03-29 08:37:50 · 232 阅读 · 0 评论 -
类模板 类外实现
定义类模板template<class T>class ClassTemplate2{public: ClassTemplate2(T name, T age); void Show();private: T m_name; T m_age;};实现template<class T>ClassTemplate2&l...原创 2019-03-29 00:42:02 · 258 阅读 · 0 评论 -
类模板派生普通函数
定义类模板template <class T>class Person{public: Person(T name, int age);private: T m_name; int m_age;};派生普通类,传递的是int类型class DeriveClass2 : public Person<int>{public:...原创 2019-03-29 00:12:31 · 139 阅读 · 0 评论 -
设计模式编程 之 观察者模式
1. 模式说明观察者模式(observer)定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象再状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。2. uml图例3. 示例代码在 《Head First设计模式》中实现了一个气象站的案例。气象站作为一个可观察对象,可以add,delete,notify,也可以设置是否通知对象SetChanged()...原创 2019-04-06 14:58:10 · 182 阅读 · 0 评论 -
设计模式编程 之 策略模式
1. 模式说明策略模式(strategy), 它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。2. uml图例3. 示例代码在 《Head First设计模式》中实现了一个鸭子的案例。鸭子的方法有swim, fly(), quack(),display(). 但不同的鸭子fly 和 quack的方式不同。fly 和 quack的形式也...原创 2019-04-06 13:35:58 · 284 阅读 · 0 评论 -
函数模板 template
在软件开发过程中,经常会遇到功能相似的代码,除了参数类型不同以外,业务实现都是一样的。这种情况下使用函数模板会非常方便。定义类模板template <class T1> // typename和class 功能一样,也可以定义多个classvoid SwapParam(T1 &a, T1 &b){ T1 temp; temp = a; ...原创 2019-03-18 09:27:43 · 548 阅读 · 0 评论 -
Beyond Compare 30天评估期结束解决办法
1)在搜索栏中输入 regedit ,打开注册表2) 删除项目:计算机\HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4\CacheId修改后30天会重新开始计算原创 2019-03-21 11:04:49 · 1864 阅读 · 0 评论 -
函数求导的目的
一个函数在某一点的导数描述了这个函数在这一点附近的变化率。导数的本质是通过极限的概念对函数进行局部的线性逼近。导数为零,说明存在极大极小值。...原创 2019-03-05 16:57:51 · 4073 阅读 · 0 评论 -
memset使用的再理解
函数原型void *memset(void *dest,int c,size_t count);Sets the first count characters of dest to the character c.对于字符串的使用#include <memory.h>#include <stdio.h>int main( void ){...原创 2019-02-20 17:21:50 · 99 阅读 · 0 评论 -
免安装使用matlab
matlab安装文件很大,对于不长使用matlab的人来说,很不方便。推荐octave online 个网站,可以实时计算matlab结果:https://octave-online.net/原创 2019-03-05 13:04:12 · 6051 阅读 · 0 评论 -
float和double数据类型的再理解
float直接赋值,qt 会提示warning为了避免这种情况,float类型在赋值时,应该在后面加个f float test2 = 2.003f; double test = 4.000;float在计算过程中,不会提示warning,比如上面的例子。但在打印时,会提示warning, 所以需要进行类型转换。...原创 2019-02-20 13:38:45 · 307 阅读 · 0 评论 -
float和double 精度分析
结论1.)范围float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位) 8bits(指数位) 23bits(尾数位)double:1bit(符号位) 11bits(指数位) 52bits(尾数位)于是,float的指数范围为-127+128,而double的指数范围为-1023+10...原创 2019-02-20 11:23:55 · 645 阅读 · 0 评论 -
调整tightvnc viewer窗口大小
tightvnc viewer 窗口大小默认是100%。有的时候会出现屏幕显示不全,需要移动下拉条,非常不方便。修改方法:1)【options】2)【display】–【scaled by】,修改为auto...原创 2019-02-19 09:39:56 · 8182 阅读 · 0 评论 -
《面向对象葵花宝典》读后感(1)
最近读了李运华的《面向对象葵花宝典》,颇有感触,重新梳理了一下自己对面向对象的理解,搞清了几个关键理解,现在做一些记录:编程语言的发展机器语言:二进制符号汇编语言:有意义的助记符,CPU指令/寄存器/段地址面向过程语言:“完成一件事情的步骤”,高级语言,不用关注机器,只需要关注问题本身机构化程序设计:自顶向下,逐步细化,模块化面向对象语言:“存在的东西,对现实世界的模拟”,类,继承,...原创 2019-02-23 15:35:40 · 504 阅读 · 0 评论 -
VS2017设置MSDN帮助文档
安装help viewerhttps://blog.csdn.net/sinat_26222723/article/details/79109653下载文档内容先选择联机,等待几秒钟,就会显示推荐的文档。然后在对应项点击【添加】,最后选择【更新】配置快捷方式https://jingyan.baidu.com/article/219f4bf7e121f4de452d3872.html...原创 2019-02-18 09:32:22 · 7804 阅读 · 0 评论 -
大牛成长录:你不知道的秘密
https://blog.csdn.net/yunhua_lee/article/details/52709882最近在看李运华的博客分享,从里面学到了很多知识和观点,记录下来,形成自己的知识树。目标:1)一万小时定律成为天才的唯一途径:刻意练习 + 10000小时2) 重复工作不能算入10000小时3) 每天可以练习3小时,也需要10年才能成为专家地图, 时间是挤出来的1)工作...原创 2018-12-09 13:39:08 · 209 阅读 · 0 评论 -
visual studio提示使用_CRT_SECURE_NO_WARNINGS
由于高版本的visual studio默认不让使用scanf等函数,认为这些函数不够安全,而其相对应的代替函数为scanf_s等。如果在visual studio中使用scanf等那些visual studio认为不安全的函数,就会报错。以下几种方法可以解决该问题:1、听visual studio的话,改用新版函数,但是有时候会比较麻烦。2、在文件开头添加 #define _CRT_...转载 2019-03-19 09:14:47 · 265 阅读 · 0 评论