
c/c++/cpp11
DanielWang_
对开源、NLP、网络编程等领域感兴趣 共同学习~~ best wishes
展开
-
effective c++条款12:复制对象别忘其每一个成分
copying函数一般有两个:copy 构造函数 和 copy assignment(赋值操作)如果我们自己去实现copy而不用编译器默认的,我们就要认真复制对象的每一项,包括基类的东西。记住:当你编写一个copying函数,请确保1.复制所有的local成员变量;2.调用所有的base class内的适当的copying函数。当这两个copying原创 2013-10-21 23:00:01 · 1514 阅读 · 0 评论 -
C++自动微分(Automatic differentiation)原理1
0. 缘由下面介绍下为什么要引入自动 自动微分(automatic differentiation -> AD )。一个优化问题的例子 假设现在我们在解决一个机器学习的问题,有了一些训练样本,现在需要寻找一个最优的函数,使得函数对输入X的估计Y’与实际输出Y之间的期望风险最小化。利用已知的经验数据(训练样本)来计算得到的误差,被称之为经验风险。使用对参数求经验风险来逐渐逼近理想的期望风险的最小值原创 2017-08-21 08:28:58 · 15022 阅读 · 3 评论 -
奇异递归模板模式( Curiously Recurring Template Pattern,CRTP)1
1.CRTP介绍奇异递归模板模式(curiously recurring template pattern,CRTP)是C++模板编程时的一种惯用法(idiom):把派生类作为基类的模板参数。更一般地被称作F-bound polymorphism,是一类F 界量化,相关介绍可以参考 wiki 奇异递归模板模式。curiously recurring template pattern,CRTP的来源,原创 2017-06-25 19:39:44 · 12543 阅读 · 1 评论 -
中文分词 mmseg nginx 模块开发
一、nginx模块开发Nginx 是一款高性能web服务器,因此,工作业务中需要借助nginx强大的网络服务功能,往往需要开发和定制相应的 Nginx 模块满足业务需求。 基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-balancer。Handler模块就是接受来自客户端的请求并产生输出的模块,也是我们使用最多的一个模块。有关nginx模块开发的原创 2016-01-17 13:55:12 · 4104 阅读 · 0 评论 -
c++ 智能指针及 循环引用问题
c++智能指针介绍由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见,并造成内存泄露。如此c++引入智能指针 ,智能指针即是C++ RAII的一种应用,可用于动态资源管理,资源即对象的管理策略。 智能指针在 标头文件的 std 命名空间中定义原创 2014-04-07 13:36:05 · 21903 阅读 · 1 评论 -
C++ 类型转换及RTTI
C++的4中类型转换我们应该比较熟悉C的类型转换即由圆括号和标识符组成,但是对于C的类型转换有时候到不到我们的要求,比如去除const 的类型转换,把一个指向基类的指针转化成指向子类的指针等等。下面就介绍C++引进的四个新的类型转换操作符,这四个操作符是:static_cast, const_cast, dynamic_cast, 和reinterpret_cast。1,const_cas原创 2014-03-18 17:12:04 · 4476 阅读 · 0 评论 -
二级指针实现单链表的插入、删除及 linux内核源码双向链表之奇技
今天看了coolshell上关于二级指针删除单链表节点的文章。文章中Linus 举例:例如,我见过很多人在删除一个单项链表的时候,维护了一个”prev”表项指针,然后删除当前表项,就像这样:if (prev) prev->next = entry->next;else list_head = entry->next;and whenever I see code原创 2013-12-03 13:54:27 · 9701 阅读 · 4 评论 -
二分查找(Binary Search) 常见问题解决方法总结
缘由今天浏览 何登成的技术博客 无意中发现了写的blog,二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现。随想总结下二分查找的常见问题。问题背景今年的实习生招聘考试,我出了一道二分查找(Binary Search)的题目。题目大意如下:给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7,7]。问题:给定任意自然数,对数...原创 2013-12-13 21:48:07 · 19097 阅读 · 6 评论 -
C语言指针总结
C语言中的精华是什么,那当然是指针,是C语言的难点部分。C是对底层操作非常方便的语言,而底层操作中用到最多的就是指针,这成就了优秀的C程序的效率几乎和汇编语言程序一样高的功绩。本文介绍C指针的一些基础和高级知识。关键好是多写代码,这样才能更好的理解C的精华--指针。1. 指针的概念指针是一种数据类型,与其它的数据类型不同的是指针是一种“用来存放地址值的”变量。原创 2013-12-08 20:23:13 · 4046 阅读 · 0 评论 -
C++ STL 优先队列 及其 霍夫曼编码应用示例
优先队列(priority queue)优先队列是一种比较常用的结构,普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高进先出 (largest-in,first-out)的行为特征。c++ priority_queueSTL priority_queue是拥有权值观原创 2013-12-27 17:57:42 · 5589 阅读 · 1 评论 -
编程求幻方(魔方),1-N
题目来源:2013.11.28 带的程序设计 I 上机(即大一C语言课程)。题目描述:有一种正方形的数字排列是一个5×5的数字幻方,即每个1到5的整数在每行每列都出现且出现一次。形式如下:1 2 3 4 52 1 4 5 33 4 5 1 24 5 2 3 15 3 1 2 4对于一个N×N的幻方,如果我们固定了第一行如下:1 2 3 4 5...N我们可以算出符合原创 2013-11-29 22:30:43 · 4596 阅读 · 0 评论 -
关于位结构体 及 位操作总结
备案待查,指不定啥时候就用上了。 写出下列程序在X86上的运行结果。struct mybitfields{unsigned short a : 4;unsigned short b : 5;unsigned short c : 7;}test;void main(void) {int i;test.a=2;test.b=3;test.c=原创 2012-10-23 16:13:19 · 9278 阅读 · 0 评论 -
c++ 容器、继承层次、句柄类
一、容器与继承在容器中保存有继承关系的对象,如果定义成保存基类对象,则派生类将被切割,如果定义成保存派生类对象,则保存基类对象又成问题(基类对象将被强制转换成派生类对象,而派生类中定义的成员未被初始化)。唯一的可行的选择是容器中保存对象的指针。但是需要用户管理对象和指针。C++中一个通用的技术是包装类(cover)或句柄类(handle)。用句柄类存储和管理类指针。句柄类大体上完成原创 2013-11-17 21:37:22 · 3361 阅读 · 0 评论 -
动态规划 LCS 求两个序列A,B中所有的最长公共子序列
动态规划 求两个序列A,B中所有的最长公共子序列 第一部分、什么是动态规划算法 动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。动态规划算法分以下4个步骤:1,描述最优解的结构2,递归定义最优解的值3,按自底向上的方原创 2013-10-22 21:18:17 · 6248 阅读 · 1 评论 -
leetcode Combination Sum 使用集合中的元素求和得到目标值
http://oj.leetcode.com/problems/combination-sum/题目:Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.原创 2013-10-29 19:50:40 · 1864 阅读 · 0 评论 -
奇异递归模板模式(CRTP)应用--表达式模板(expression template) 2
1 表达式模板(expression template)概述首选分几个部分介绍下expression template。1.1 表达式模板(expression template)是什么?引用wiki 介绍的 Expression templates : Expression templates are a C++ template metaprogramming technique that原创 2017-07-12 23:30:42 · 6041 阅读 · 2 评论