c++
文章平均质量分 64
我说下我的看法
工作一年啥也没学会
展开
-
矩阵在计算斐波那契数列的运用
斐波那契数列的定义为:f(n) = f(n-1) + f(n-2)按照一般的迭代算法时间复杂度是O(n)。如果用矩阵,理论上会快点,但是实际上会很慢,除非n很大。原因主要在于其系数很大,所以终究是属于学院派算法。矩阵算式:A(n)=[f(n),f(n-1)]=[1,1,1,0]*[f(n-1),f(n-2)];通过递归,可得A(n) = [1,1,1,0]^(n-2) * [1,0原创 2014-05-18 11:28:33 · 1345 阅读 · 0 评论 -
type_traits之has_* 系列
有时候我们需要判断两个类型是否支持某个运算操作符,比如+/-等等。C++里该如何在编译器判定类里面支持此类需求呢?本文基于Boost库源码,尝试作一番探讨。不妨先定义一个类:templatestrcut has_plus{ static const bool value = false;}这个判定类直接写死,永远是false,即不支持+操作符如果我们传原创 2016-02-25 18:56:50 · 474 阅读 · 0 评论 -
对c++11下新增字符编码格式转换函数的简单封装
c++11标准新增了一些字符串编码格式转换的函数和类,方便开发者写跨平台代码。我对它们做了简单的封装并在VS2013测试通过。#pragma once#include #include #include #include #if defined(_DEBUG) || defined(DEBUG)#define ASSERT(p) assert(p)#else #define原创 2016-03-20 00:20:32 · 1252 阅读 · 0 评论 -
手动生成BMP图片
BMP现在一般不用16位或者8位,所以也就不用调色板。原创 2014-09-21 23:21:32 · 1267 阅读 · 1 评论 -
学习boost之0 开发一个日历
早有听闻boost很强大,最近开始学点皮毛。先从jian'd原创 2014-06-20 21:11:44 · 694 阅读 · 1 评论 -
保证程序单例运行的几种方法——读《windows核心编程》笔记
0.写配置文件,包括注册表,环境变量和本地文件等。启动的时候写入标志,退出的时候删除即可。缺点就是程序中途崩溃或者被强制终止,那么标志位来不及恢复,后面程序就启动不了。这个方式基本不用。1.另一种方法是启动一个守护进程,负责这项事情,要启动一个新实例,通过他来调用,他负责管理进程以及服务。一般守护进程需要一直存在,不能被用户轻易干掉。360就有一个守护进程,怎么也杀不掉。代码略,一般是调用原创 2014-05-16 21:56:24 · 2877 阅读 · 3 评论 -
算法导论最后一章《近似算法》习题“装箱”问题求解
这个装箱问题的问题描述类似:http://bbs.csdn.net/topics/300089315 或者这个问题 http://zhidao.baidu.com/question/711433274928584405.html这个问题可以证明这是一个NP完全性的问题。所以什么贪心算法是无法求得最优解的,甚至也不适用于0-1背包问题。既然是NP问题,求解的时间复杂度应该是指数时间。所以在实际原创 2014-08-02 22:59:30 · 3961 阅读 · 1 评论 -
计算e的近似值 代码解读
源代码排版下:1234567891011121314151617181920212223242526272829303132原创 2014-07-23 20:19:59 · 5731 阅读 · 0 评论 -
大多数算法及其推广
有一种算法叫大多数算法,意思是给定一个数组,原创 2014-05-18 22:49:35 · 714 阅读 · 0 评论 -
单元测试框架的简单实现
自己重新实现了一个单元测试框架,写的玩玩的,在项目里试用了下,还可以。源码也就100行左右#pragma once#include #include #include "consolecolor.h"#include using namespace std;class RunUnitTest{public: RunUnitTest() :m_bPass( false )原创 2016-04-12 16:58:05 · 512 阅读 · 0 评论