大的方面:程序架构,算法,数据结构。 1 关于继承:不可否认良好的抽象设计可以让程序更清晰,代码更看起来更好,但是她也是有损失的,在继承体系中子类的创建会调用父类的构造函数,销毁时会调用父类的析构函数,这种消耗会随着继承的深度直线上升,所以不要过度的抽象和继承。 2 对象的复合:对象的复...

阅读全文 »

class Rational { public: Rational(int a = 0, int b = 1) : a_(a), b_(b) { } Rational(const Rational &rhs) : a_(rhs.a()), b_(rh...

阅读全文 »

虚基类中要实现virtual析构函数 否则,在下面的例子中子类Dog得不到释放 include <iostream> include <memory> class Animals { public: Animals() { std::cout << "A...

阅读全文 »

收集的一些比较实用的函数,头文件依赖(不包括全部): include <TlHelp32.h> include <psapi.h> include <Windows.h> include <time.h> include <algorithm> include <i...

阅读全文 »

bug修复,for循环倒叙遍历的时候千万不要用size_t 如下代码: std::vector<int> x = { 1, 2, 3, 4, 5 }; for (size_t i = x.size() - 1; i >= 0; i--) { std::cout << x...

阅读全文 »

正确实现String可以考察C++的一些基本功,稍不注意就会出错,下面来列举一下关键点: 1. 构造函数,拷贝构造,赋值操作符是必须的; 2. 成员初始化列表执行顺序; 3. c_str()不要返回空指针; 4. 实现swap函数; 5. 分配内存的时候要用外面传进来的size; 6. ...

阅读全文 »

我的云服务器上目前部署的是我的博客,每次重启服务器都要重启一下所有程序蛮麻烦的,所以这次把它自动化了。重启系统后自动执行脚本部署所有服务。 目前服务器上如下服务需要重启: * nginx:反向代理 * mongodb:数据库 * 3inns:我的博客 * ningto:新版博客(rea...

阅读全文 »

1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disable firewalld 禁用: systemctl stop firewa...

阅读全文 »

在输入框进行搜索的时候,通常我们每输入一个文字都要进行一次搜索,这样能得到实时的搜索结果。如果搜索速度很快的话当然是没问题的。 如果搜索的速度慢,当用户快速输入的时候就会很卡了。 其实在用户快速输入的时候对中间搜索的结果并不感兴趣,最后的结果才是我们想要的,所以中间过程的频繁搜索中是有些...

阅读全文 »

碰到了一个内存释放的问题,在进行某个复杂的操作时内存释放后否则会造成崩溃。经过多方面调查发现此时根据就不能释放内存(历史原因),否则会造成不可预知的问题。所以我打算把要删除的指针暂时保存起来,并不立马delete,等到10秒钟还没有操作的时候(稍微空闲)再把保存的指针都销毁掉。 后来顺利的解决...

阅读全文 »

系统自带的tooltip太简单了,自定义tooltip就灵活多了,可以定义各种各样的控件样式。 从QDialog继承 class Tooltip : public QDialog 设置无边框属性 setWindowFlags(Qt::Framel...

阅读全文 »

react native中当我拷贝一个对象的时候遇到上述错误,我有一个obj(有些特殊),for循环给它赋不同的值放入Array中,如下代码: const objList = [] for (let i = 0, count = protoList.length...

阅读全文 »

javascript使用protobuf google官方已经支持了可以看[这里](https://github.com/google/protobuf/tree/master/js),我只是简单的试用了下没有深究,这篇文章介绍的是dcodeIOde的[protobuf.js](https://gi...

阅读全文 »

我的网站之前的域名是http://3inns.cn,现在注册了一个新域名http://ningto.com,由于老的域名已经用了一段时间,所以当用户访问老地址的时候我想直接映射到新域名并且保留之前的路径。 如老的文章地址: http://3inns.cn/post/5a5ad12c...

阅读全文 »

> 英文:SKOWRONSKI 译文:elevenbeans elevenbeans.github.io/2018/02/05/top-10-javascript-errors/ 为了回馈我们的开发者社区,我们查看了数千个项目的数据库,发现了 JavaScript 中频度最高的 10...

阅读全文 »

之前使用的阿里云快到期的,了解了下腾讯云价格比较合算而且对新用户有代金券,选了一个云服务器CVM,主机类型是标准型S2,配置1核 1GB 1Mbps普通云硬盘,买了三年的总共1080元,再加上满1000元有500元的代金券可以使用,所以实际花费了580元就可以使用三年了,感觉蛮划算的。 下面是...

阅读全文 »

首先要了解它的setSelectionBehavior和setSelectionMode这两个接口,接下来再来考虑选中的问题。查看官方文档,setSelectionBehavior用来设置选中的是单元格,行还是列,setSelectionMode用来设置用户点击后的界面响应:单选,多选,扩展选择(C...

阅读全文 »

定义类 ES6类并不是一个全新的东西:它们主要提供更方便的语法来创建老式的构造函数,javascript的类并不像其他面向对象语言C++,java中的类,这里的类只是语法糖,实际上还是基于原型链的方式。 类申明 定义类的一种方式是使用类的申明,为了申明一个类,你可以使用class...

阅读全文 »

桌面客户端程序主线程就是UI线程,我们经常要将网络中获取到的数据展示到界面上,通常有同步和异步两种方式,同步方式会阻塞UI,所以这种方式可以忽略了(特殊情况下可以使用)。大多数异步方式请求后是在子线程中返回数据的,而在这里我们是不能直接操作UI的。 下面介绍两种方法将子线程获取到的数据抛到UI...

阅读全文 »

在上一篇文章中提到过,我已经不在Google工作了。我还没有想清楚应该去哪里—有两三个非常好的工作机会摆在我面前。因为在这段做决定时间里,我不再受雇于任何人,我想可以写一些专业性的东西,一些很有趣,但也会在同事和管理工作中导致关系紧张的东西。 ![本文作者](http://www.vaikan...

阅读全文 »