自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我要学习的东西

1. 学习 makefile2. 学习 gdb 调试3. 在 Qt 下做一个简易的 QQ4. 学会动态库,静态库和链接5. 学会用 vim, emacs ,和 linux 常用命令6. 线程池 + 内存池 + 对象池7. 练习使用 log4cpp8. 学习 github 代码管理9. 学习 boost.asio参考博客1. linux 下如何学 C++2...

2018-10-03 15:20:16 338

原创 我要读的书

我看完了的书:1. 《Effective C++》2. 《More Effective C++》3. 《深度探索 C++ 对象模型》我正在看的书:1. 《Exceptional C++》2. 《More Effective C++》3. 《GNU Make》我还没看的书:1. 《程序员修炼之道:从小工到专家》2. 《STL 源码剖析》3. 《C...

2018-09-28 23:32:40 191

原创 C++ 学习记录

1. 2018.5.12 尝试菱形继承,发现根类会构造,析构两次 学习了虚继承 virtual public [基类 classname]

2018-05-12 11:15:42 715

原创 很不错的博客收集

C++ 为什么 C++ 编译器不支持模板分离式编译 C/C++程序从编译到最终生成可执行文件的过程分析 List with iterator(链表的迭代器实现) 实现自己的 Shell C++17尝鲜:fold expression(折叠表达式) C++ 内存分配(new,operator new)详解 深入C++的new C++ 11 左值,右值,左...

2018-05-11 18:53:01 300

原创 机器学习 回归树算法 C++

算法很简单.x 一维时的 C++ 实现如下(来自<统计学习方法> 第五章习题 5.2>#include <iostream>#include <functional>#include <memory>#include <fstream>#include <cmath>#include <stri

2018-10-25 13:43:41 607

原创 机器学习 K-means 聚类算法 C++

笔记:尚未解决的问题 :    1. 只支持二维,而不支持三维或更高,需要模板元    2. 尚未实现如何删除极端点, 即预处理    3. 尚未可视化编译环境 Ubuntu gcc 5.4 编译选项  g++ -std=c++14#include <iostream>#include <functional>#include <fstre...

2018-10-21 16:11:06 466

原创 机器学习 决策树 ID3 算法 C++ 实现

最近学习了 QT 下如何做一个 QQ, 以及学的课程(机器学习,机器智能,模式识别),愈发感到了数学的重要性.在偏工程和偏算法两者之间抉择......今天,用 C++ 实现了决策树中的 ID3 算法.快一年不写递归了,这次还是复习了不少东西.代码如下:希望日后有时间写个总结,最近一个月学习了不少 C++ 的东西,全放在 github了#include <iostream&gt...

2018-10-20 00:14:50 1595

转载 C++ 学习笔记(28)C++ thread_pool

代码来自网络。只做私人记录,参考用#include <iostream>#include <vector>#include <queue>#include <string>#include <functional>#include <chrono>// thread#include <thread&g

2018-10-03 21:44:28 551

原创 C++ 学习笔记(27)Flyweight Pattern

Flyweight Pattern享元模式生活中的实例:(1)Word 等文档编辑器中,会出现很多的重复字母,例如“的”,“I”, "you"等,如果出现了 1000 次,就需要生成 1000 个对象(2)LOL 等近亲游戏中,小兵这一角色,数量极多,但它们其实有很多的共同点,不必生成那么多对象(3)围棋中,黑白棋子除了位置不一样,其他特征都是一样的,如果可以共享,就只需要两个实际存储的对...

2018-09-25 20:49:59 170

原创 C++ 学习笔记(26)Decorator Pattern

Decorator Pattern装饰者模式假设现在要对一个已有的类进行功能拓展,思路可以选用继承。但是如果要拓展的功能比较多,而且功能之间可以随意搭配,例如两种主材料 A, B, C, 可以搭配的材料有 X, Y, Z ,如果继续采用继承,就大致如下:// -----------------------------------------class Meterial {} ;...

2018-09-25 17:23:09 227

原创 C++ 学习笔记(25)Composite Pattern

Composite Pattern组合模式考虑一个系统,存在层次管理关系,例如公司内董事长之下,有多个经理,每个经理之下都由若干个部门,每个部分都若干个员工,如果采用面向对象的思想来设计这样一个树状的系统?建立统一基类对象:Component分类:内节点(枝干),外节点(叶子)特点:(1)内节点可以有孩子,外节点不可以有孩子;(2)内节点的孩子可以是内节点,也可以是孩子区别...

2018-09-20 11:39:14 170

原创 C++ 学习笔记(24)Facade Pattern

Facade Pattern 外观模式生活中的例子:(1)通过总开关,接入和切断电源(2)网站导航主要思想:定义一个外观类(外覆器),为子系统的一组接口提供统一的接口。在这些子系统和使用子系统的客户之间建立一层“缓冲层”,这个缓冲层接收客户的访问请求,然后将任务分配到诸子系统中。外观模式之前:class Com_1 { public: void run(); } ;cla...

2018-09-20 10:08:28 135

原创 C++ 学习笔记(23)Prototype Pattern

Prototype Pattern原型模式好博客 原型模式很简单,关键就是通过基类指针调用派生类的 copy constructor#include <iostream>#include <memory>#include <string>class Base {public: virtual ~Base() = default; v...

2018-09-19 10:35:21 159

原创 C++ 学习笔记(22) Builder Pattern

Builder Pattern建造者模式。考虑生活中的常见场景——餐厅订餐。该餐厅决定提供 N 中套餐 (setMenu 类描述),主要描述如下:namespace Restaurant { // 产品类, 此景中为 套餐(set menu) class setMenu { private: std::vector<std::string> mealOrder...

2018-09-19 00:14:31 302

原创 C++ 学习笔记(21)Adaptor Pattern

Adaptor Pattern适配器模式,把一个类的接口改成希望的接口。考虑一个这样的类 Invoker, 缺少 method_2 方法,希望能想办法调用这个函数class Invoker {} ;恰好,另一个类 Adaptee 拥有 method_2 方法class Adaptee {public: void mothod_2() {}} ;目标是达到 Inv...

2018-09-18 20:25:51 258

原创 C++ 学习笔记(20) Template Method Pattern

Tamplate Method Pattern      模板方法模式:针对一连串有固定顺序的操作,把共有部分集中到基类中,不同部分分散到不同子类中去实现。C++ 对此还有一种特殊的设计 NVI 。       设计出发点:(1)提高代码复用性, 不同派生类的共同部分集中在基类中(2)基类通过对派生类的具体实现来拓展不同的功能。       生活中的例子:(1)炒菜,炒不同的菜,会有相...

2018-09-18 11:13:09 309

原创 C++ 学习笔记(19)CRTP

CRTP奇异递归模板(curiously recurring template pattern)样式如下:template<typename T>class Base { // ... friend T;} ;class Derived : public Base<Derived> { // ...} ;特点(1)派生类继承自模板基类(2)...

2018-09-17 11:06:18 379

原创 C++ 学习记录(18) NVI

NVInon-virtual interfaces(NVI),非虚拟接口,私有虚函数。令客户通过 public non-virtual 成员函数间接调用 private virtual 函数,是 Template mothod 设计模式的一种独特表现形式。这个 non-virtual 虚函数称为 virtual 函数的外覆器。(摘自《Effective C++》)简单示例:#...

2018-09-17 00:11:33 829

原创 C++ 学习笔记(17) pimpl

pimpl对象内含一个指针,指针指向另一个对象,另一个对象常常含有真正的数据。典型例子就是智能指针。基本形式:class other {} ;class Object {public: // ...private: other *ptr;} ;其中, ptr 常是 std::shared_ptr<other> ptr, 遵循 RAII 思想;优点:...

2018-09-16 18:58:21 268

原创 C++ 学习笔记(16)代理模式

代理模式的几种应用实例:1. 远程代理为远程程序在本地建立局部代理,可以隐藏外部资源存在于不同地址空间的事实,例如建立 agent 代理类处理 Socket 的数据发送与接收控制。生活中的典型例子还有有游戏代理服务器(加速器,远端计算机具有更优秀的计算能力和处理速度,加快响应和数据交互)。2. 虚代理延迟大型对象的构造。一开始只建立代理,一直到真正需要大型对象的时候才创建它,类似于...

2018-09-16 16:59:02 200

转载 静态库、动态库,dll文件、lib文件,隐式链接、显式链接浅见

转载自:https://blog.csdn.net/dcrmg/article/details/53427181静态链接、动态链接静态库和动态库分别应用在静态链接方式和动态链接方式中,所谓静态链接方式是指在程序执行之前完成所有的链接工作,把静态库一起打包合入,生成一个可执行的目标文件(EXE文件)。所谓动态链接方式是指可执行目标文件在执行过程中才去加载调用相关功能函数,即在需要时才按需...

2018-08-15 12:53:03 283

转载 C++ main函数中参数argc和argv含义及用法

转载自 :https://blog.csdn.net/dcrmg/article/details/51987413argc 是 argument count的缩写,表示传入main函数的参数个数;argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的ma...

2018-08-15 12:50:30 176

转载 深入 C++ 的 new(转载)

转载自:https://blog.csdn.net/songthin/article/details/1703966“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正...

2018-08-15 12:41:40 11659 4

原创 C++ -学习笔记(15)SFINAE 匹配失败并不是错误

SFINAE 意为“匹配失败并不是错误”。常用于编译期间,模板参数类型的判断和查找——会遍历查找所有可能匹配的参数类型,如果找不到,就编译失败。C++11 中的 type traits 库中大量运用了 SFINAE。例如 is_class, is_pointer, is_member_function_pointer, is_const 等。对类型的 SFINAE 主要通过在类内部定义的 ...

2018-08-13 12:15:03 1380

原创 Loki 库学习(1)ScopeGuard

ScopeGuard 主要分两种情况:1. 调用非成员函数2. 调用成员函数含一个参数,非成员函数 的 ScopeGuard 模板:#include <bits/stdc++.h>#define rep( i , j , n ) for ( int i = int(j) ; i < int(n) ; ++i )#define dew( i , j , n )...

2018-08-13 07:43:23 448

原创 C++ 学习笔记(14)RAII 资源管理型模板化

对比 C++ RAII 泛化,进一步把资源封装在 RAII 中,向外提供接口尚不完善,仅作记录用#include <bits/stdc++.h>#define rep( i , j , n ) for ( int i = int(j) ; i < int(n) ; ++i )#define dew( i , j , n ) for ( int i = int(n-1...

2018-08-13 07:40:10 151

原创 C++ 学习笔记(13)RAII 模板化 和 ScopeFuard 模板化

巧妙运用 std::function<> 和 lambda 表达式,做到泛化PS: 手动清理在异常安全和资源安全方面的缺点:手动调的一个坏处是,如果在资源申请和释放之间发生了异常,那么释放将不会发生,此外,手动释放需要在函数的所有出口处都去调释放函数,万一某天有人修改了代码,加了一处return,而在return之前忘了调释放函数,资源就泄露了。RAII 模板#inclu...

2018-08-12 13:09:02 257

原创 C++ 学习笔记(12)模拟 std::ref

#include <bits/stdc++.h>#define rep( i , j , n ) for ( int i = int(j) ; i < int(n) ; ++i )#define dew( i , j , n ) for ( int i = int(n-1) ; i > int(j) ; --i )#define _PATH __FILE__ , _...

2018-08-12 10:15:47 199

原创 C++ 学习笔记(11) RAII 工厂简易实现

参考博客:RAII 工厂#include <bits/stdc++.h>#define rep( i , j , n ) for ( int i = int(j) ; i < int(n) ; ++i )#define dew( i , j , n ) for ( int i = int(n-1) ; i > int(j) ; --i )#define _PAT...

2018-08-11 17:34:45 225

原创 C++ 学习笔记(10) 简易版 RAII

利用局部对象离开作用域,自动调用析构函数。类似应用:lock_guard<> ,及时加解锁,防止死锁。学习例子:#include <bits/stdc++.h>#define rep( i , j , n ) for ( int i = int(j) ; i < int(n) ; ++i )#define dew( i , j , n ) for (...

2018-08-11 12:45:04 257

原创 C++ 学习笔记(9) RAII 在文件中的简单应用

出发点:及时释放文件资源例子:ofstream 文件输出流 和 RAII 的结合#include <bits/stdc++.h>#define rep( i , j , n ) for ( int i = int(j) ; i < int(n) ; ++i )#define dew( i , j , n ) for ( int i = int(n-1) ; i &g...

2018-08-11 12:22:42 225

原创 设计模式 学习笔记(1) 单例模式之懒汉式

 **懒汉式构造单例类** 懒汉式,指的就是需要时再构造(延迟构造),在效率上会优于饿汉式,因为饿汉式在进入 main 之前就要构造,懒汉式不用。基本特点是:线程不安全基本模板(加锁):#include <bits/stdc++.h>#define rep( i , j , n ) for ( int i = int(j) ; i < int(n) ; +...

2018-08-02 11:33:23 169

原创 计算机网络实验 Go Back N 滑动窗口协议 C++

环境 : Microsoft Visual C++ 6.0Go Back N 协议  ( 暂无 ack )#include <iostream>#include <cstring>#include "protocol.h"#include "datalink.h"using namespace std ;#pragma comment ( lib ,...

2018-08-01 17:38:41 3631 7

原创 生物信息学习笔记 (3) 找零钱

经典问题,给定一些面额的纸币,和要找回金币的总额,找出使得纸币数量最少的方案今天第一次写 Java, 开始 Java 学习之旅吧 public class Make_Change { public static void main ( String[] args ) { final int [] Value = new int[] { 1 , 2 , 5 , 10 , 20 ...

2018-08-01 17:38:32 173

原创 计算机网络实验 选择重传协议 Code 记录

计算机网络滑动窗口协议的模拟(仅作记录)环境:Microsoft Visual C++ 6.0参考:《计算机网络》第五版,清华大学出版社帧格式定义 : /* FRAME kind *//* DATA Frame +=========+========+========+===============+========+ | KIND(1) | S...

2018-08-01 17:38:27 1061

原创 生物信息基础 学习笔记(1)

生物信息基础  学习笔记 (1)——穷举搜索部分酶切问题: 已知多重集,求原来的集合 X,可以有多个 。例子:X = { 0 , 2 , 4 , 7 ,10 },则 = { 2 , 2 , 3 , 3 , 4 , 5 , 6 , 7, 8 , 10 }不同的 X 可能产生相同的  , 这样的 X 称为同效集。现在已知 ,要求所有的 X 。不实用的限制酶切作图算法...

2018-08-01 17:37:54 1271

原创 生物信息基础 学习笔记 (2)

问题描述:给定一些 DNA 序列  t 行 ,为了标记,往每一行的随机位置中添加一个特殊序列,每一行添加的都是一样的序列。插入的序列可能会产生基因突变,部分碱基会发生改变。现在,要已经知道 DNA 序列,插入序列的长度 l , 因为插入的序列不稳定,很可能会发生基因突变,要找出最可能的一致串  l 。尝试长度为 l 的每一个序列,该序列上每一个位置都有四种可能 a c g t ...

2018-08-01 17:37:44 313

原创 平日小算法笔记 (1) 前缀和求递增三元组

2018.4.3 遇到一个很有意思的题目题目:递增三元组给定三个整数数组 A = [A1, A2, … AN], B = [B1, B2, … BN], C = [C1, C2, … CN], 请你统计有多少个三元组(i, j, k) 满足: 1. 1 <= i, j, k <= N 2. Ai < Bj < Ck【输入格式】 第一行包含一个整数N...

2018-08-01 17:37:34 373 4

原创 设计模式(2) 抽象工厂(一) 学生成绩管理系统设计

续上篇 工厂模式(一) 学生成绩管理设计一个实体"根类" Entity , 派生出三种类——老师,学生,课程一个接口工厂,派生出三种工厂,分别 Create 老师,学生,课程可以考虑,不同学院之间的老师,学生,课程是不同的,例如计算机学院和经济管理学院的教师(假设无重叠),学生,课程(课程大多是不同的)。现在,我想要产生老师的工厂,可以产生不同学院的老师,例如——这个特制工厂,可以...

2018-08-01 17:37:21 486

原创 计算机网络实验 Go Back N (带有ACK)滑动窗口协议 C++

续上次 计算机网络实验 Go Back N (不含 ACK)滑动窗口协议 C++今天实现了 带有 ACK 的 环境 :Microsoft Visual C++ 6.0 代码实现:#include <iostream>#include <cstring>#include "protoco

2018-08-01 17:36:45 6449 3

空空如也

空空如也

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

TA关注的人

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