自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 连续空间的多维数组实现(二)

在我的这篇文章中,我提出了一种实现连续空间的二维数组的方法。 https://blog.csdn.net/u014613043/article/details/51543534 今天重新组织了一下新的实现方式,觉得有点意思,记录一下 设计思想 一个连续的多维空间数组,希望可以使用模板自动帮我们识别...

2019-07-02 23:19:47 64 0

原创 个人项目总结

个人项目总结 @todo

2019-05-18 18:00:10 328 0

原创 C++ Task 的实现(lambda 是个好东西)

本文目的在于实现一个简单易用的 task 类。它的目的在于将将要执行的动作和上下文相关信息(如参数)保存起来,然后在想要执行的时候,发起这个动作。 完成品的实例如下: struct A { int b; }; task t([](A a, A b, int c)->void...

2017-11-15 12:38:53 1927 0

原创 某天的想法 -- 为什么我们要努力

我一直相信这个世界是遵循加速回报定律了。就跟玩游戏一样,你后期越厉害,打出的伤害就越高。你以为的成长曲线是红色的,但实际上,成长的曲线是蓝色的。我记得早先一个华中科技的学长告诉我一个道理, 他说,人出名要趁早,名望这种东西,越早越好。在我理解,是加到自己身上的buffer 越早越好。这些新加的b...

2017-11-08 10:35:28 294 2

原创 无题

很久没有写过博客了,不知道这篇算什么类型的。是技术的,还是心情的呢。今天终于算是看完了《STL 源码剖析》。写的最后一份代码是 红黑树的实现。 在C++14 的标准看来,这本书有些内容感觉还是过时了。如果有右值引用和匿名函数的话,也许模板还有更牛逼的玩法吧。我毕业了,学生时代写点什么东西就迫不...

2017-07-29 15:05:20 228 3

原创 STL(七):stack 与 queue

好久没有写过新的内容了。主要是最近真的没有时间。 好吧,这次介绍一下栈与队列的内容。 stack 先理一下之前写过的容器: vector deque list 这些都是序列式容器,但是使用了不同的数据结构来实现。 栈的特性,就是先进后出(或者后进先出) 一般来说,我们可以使用...

2016-10-01 22:52:40 341 0

原创 STL(六):deque

隔了好多天,终于把这个deque 给写了。deque 是双端队列。也就是,方便在队头和队尾插入数据的队列。 它能够解决vector 增加元素时不停地重新分配内存和在头部插入效率低下的问题。看到它的数据结构才觉得真心厉害。数据结构看图 deque的数据组织是这样的: 有一块连续的小内存充当中控...

2016-07-24 12:04:17 350 0

原创 OgreBullet 的使用

最近做实训,用到Ogre 的引擎。 在渲染方面,Ogre 的性能杠杠的,不用多解释,但是除了渲染,别的模块很多都是空缺的。 so,当我尝试去做物理引擎的时候,发现就像来到了一篇荒原,对,就是荒原。 所幸,前人做了很多的物理引擎与Ogre 的匹配。OgreBullet 就是与Bullet 匹配...

2016-06-16 20:15:47 856 0

原创 STL(五):连续空间的二维数组实现

这个不属于STL 中的内容,仅是个人补充使用嘛~一开始是这样的。 加入我们需要新建一个二维数组,一般像下面这样用:int row = 2, col = 3; int array[2][3]; //1 //or vector< vector<int> > v(row, ve...

2016-05-31 10:56:30 1263 0

原创 STL(四):list

STL 中的list 可以说是与vector 相对应的一个容器。 什么意思呢? 嗯,在我看来,vector 是线性表,空间连续,它的特点是原生指针作为它的迭代器,支持随机存取。但是插入和删除的操作代价高,并且有可能有一部分空间被浪费。 list 是链表,空间不连续,它的特点是对空间利用率高,...

2016-05-27 16:39:11 1242 0

原创 STL(三):vector

一和二中吧STL 的基础都说明白了,那我们尝试着实现一下第一个容器:vector (好敷衍呀~)vector 算是比较简单的一种容器了,但饶是如此,我都写了好久(主要是其他的各种函数费时间)准备工作在直接开始说vector 的时候的时候,我会假设你懂得以下函数的运用(最好自己去实现一下吧) un...

2016-05-25 09:13:07 3457 0

原创 STL(二):construct 与 destroy

STL 中关于对象的构造和销毁是使用construct 和 destroy 函数 的。 这个内容写在文件stl_construct.h 中。_type_traits在讲主题之前,有必要介绍一个_type_traits 与若干概念。 简单而言,这个类的作用就是萃取出我们需要的各种内容。它的模板代...

2016-05-24 21:14:20 449 0

原创 STL(一):allocator 空间配置器

大概…………很久很久以前,我做了一个浪(er)漫(bi)的决定,就是自己也实现一个STL,毕竟造轮子呀,才是最浪漫的不是吗。于是,山很高,海很深,浪花一浪接一浪,我义无反顾走上了作死之路。 nice ,作死之路的第一部分,就是关于allocator,空间配置器的。STL 有自己的内存管理,其中最...

2016-05-24 20:49:54 339 0

原创 new 与 delete 操作符

new 和 delete 是C++ 中一对动态申请内存的操作符。new_handler 行为在std的命名空间中,有这样的代码:namespace std { typedef void (*) () new_handler; new_handler set_new_handler(...

2016-05-09 12:38:20 693 0

原创 模板Trait 技术与简述template 元编程

模板Trait 技术想了好久都没有想到合适的例子,已是干脆直接使用[1]中的例子就好了。STL 中引入了迭代器的概念。但是在本文中的例子不直接使用STL 的迭代器,而是写了一段很简短的代码,作为演示使用。 本例中的迭代器有三种: Forward_Iter,只能向前进,也就是只能加非负数 Bidi...

2016-05-08 20:41:04 614 0

原创 模板

隐式接口与编译器多态 假如有如下的模板函数: templatetypename T> void doSomething(T& t) { if(t.getIs() ) { t.traver(); } } 那么,对于T 而言,它的隐式接口...

2016-05-08 11:12:13 498 0

原创 完全不知道怎么取标题,但是不进来看看也许会后悔--其实我一开始想写关于virtual 函数的

假如,现在有个类,它含有数据,我们需要为它编写一些遍历的函数。 就比如,类是这样的:class SomeClass { enum{ Length = 512}; int element[Length]; public: void traver() { ...

2016-05-07 13:49:12 517 0

原创 面向对象设计时的若干考虑

在OOP 中,类之间的关系可以如下表示[1]: 当类是public 继承的时候,它们之间是is-a 关系. 当类是private 继承的时候,它们之间是is-implemented-in-terms-of 关系 当类是耦合关系时,它们之间是has-a 或者 is-implement...

2016-05-07 12:46:30 238 0

原创 swap 函数的编写

swap 函数用来交换两个变量的值,C++ 标准库提供了这个函数。前面的博客也有提到 copy and swap 技术,可以处理自我交换的情况。 那一个典型的实现就是这样的:template<typename T> void swap(T& a, T& b) { ...

2016-05-07 12:24:30 814 0

原创 以对象的形式管理资源

题目来自[1]条款13:以对象管理资源。 因为太贴切了,所以直接用了。 首先说一下资源。 所有资源就是,一旦用了它,将来必须还给系统。[1] 而资源一般是[1]: 内存 文件描述器(file decriptors) 互斥锁 (mutex locks) 图形界面中的字型和笔刷 数...

2016-05-07 11:20:45 602 0

原创 正确地复制对象--oeprator=与copy构造函数

额,这个名字有点怪怪的=_=ok,下面进入正题,为了演示方便,代码只写出简略的部分。copy构造函数class Base { public: Base() {} Base(const Base& ) { cout<<"Base...

2016-05-06 16:16:51 416 0

原创 谈谈virtual函数

virtual , 写C++ 的都不会陌生吧,用于类的成员函数,用以表现对象多态的性质。为多态基类声明virtual 函数以前看书时,得到一条“黄金定律”(这是错误的): 永远应该以virtual 声明类的析构函数 如果不这么做,那么当类成为基类时,在回收对象内存,会发生不正确的行为,导致内存...

2016-05-06 14:18:38 1391 2

原创 Empty Class(空类)的作用

假如有一个这样的类,没有数据成员和操作(除了本身默认存在的构造函数、复制构造函数、析构函数、copy assignment函数),那么,它能做什么?class Empty { };一开始我也是以为这样的空类能够有什么作用呢,直到我看了[1],才感叹自己如此肤浅(所以也建议你去看:)先假设我们有个很...

2016-05-05 17:01:03 5643 0

原创 const 成员函数重载

先看一段引用[1]: 许多人漠视一件事实:两个成员函数如果只是常量性(constess)不同,可以被重载 ok,下面为了解释,定义一下下面这个类:class Cstring { private: char str[32]; public: Cstring(cha...

2016-05-05 15:56:48 500 0

转载 数字证书原理,公钥私钥加密原理

加密解密的文章,非常详细数字证书原理,公钥私钥加密原理 - 晓阳 的专栏

2016-04-26 21:45:11 318 0

原创 Graph Cuts

Graph Cuts 是Yuri Y. Boykov 和 Marie-Pierre Jolly 发表在2001年iccv 上一篇论文提出的方法。他们研究,用一种交互式的方式来进行图像的分割。先由用户标记一些背景或者物体的种子像素点,然后用Graph Cuts的方法进行分割。Graph cuts是一...

2016-04-24 21:41:13 3614 4

原创 智能剪刀算法学习笔记

写在前面的话:如果以后我看到什么不懂的话,我一定会说:”天哪,这简直比计算机视觉还难!“一边看论文,一边整理思路,决定整个思考过程都像流水账一样记下来。高能:由于先整理思路,然后再动手写代码,所以,前面的内容可能有错,仅作为个人课程设计之用,请保持个人独立思考和分辨是非的习惯————>+_+...

2016-04-15 20:58:27 8629 6

转载 thinkPHP入门(二):基础

最近正在学习thinkphp,同时博客同步记录学习笔记,但是内容大多都是[1] 提供的文档,所以,强烈建议直接阅读该文档,此文仅作为本人学习记录之用 *在此之前,假设数据库中已经有一张表 think_form 了,具体内容请看[1] CURD CURD指的是数据的基本操作: C: cre...

2016-04-13 09:38:35 466 0

原创 C++服务器(七):Windows 下配置pthread

pthread POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。[1] 这套接口在 Linux 下得到很好的支持。但是在 Windows 下却需要额外配置,不过过程倒是比较容易。 这里的配置针对GCC 编译器,如果是配置VC 的话,方法也差不多,大...

2016-04-09 09:35:31 1290 0

原创 C++服务器(六):socket 异步模型与select 的实现

之前在另一篇博客上提到一些关于socket 的异步模型的资料,其中有一篇博客写得很详细,在此附上链接: socket阻塞与非阻塞,同步与异步、I/O模型[1]这篇博客已经讲得很好了。但是我还是觉得,有必要的话,应该捧个书本系统地探究一下socket 异步模型的区别和实现。在这里,我选择的实现是...

2016-04-07 20:12:13 7880 0

原创 ubuntu15.10 配置opencv开发环境

1、去官网下载最新的opencv版本下载Linux的即可 http://opencv.org/downloads.html2、安装必要的依赖包等sudo apt-get install build-essential sudo apt-get install cmake git libgtk2....

2016-03-26 19:56:06 1493 2

原创 C++服务器(五):pthread多线程编程

多线程采用pthread库。 考虑到多平台下的实现并不会很容易,还有多线程间的同步等问题,采用一个比较通用的库就好了,这样减少很多工作(其实是我不会使用别的库)创建一个线程函数原型:#include <pthread.h>int pthread_create(pthread_t *...

2016-03-19 20:24:27 2112 0

原创 C++服务器(四):git 如何强制覆盖本地文件and socket 的异步模式

没什么事做就只好写写博客。 不过这次没有贡献什么代码。 倒是了解了git 的一下用法 还有socket 的异步模式。 先放在参考资料那里,以后再查看。参考资料: socket阻塞与非阻塞,同步与异步、I/O模型 Git pull 强制覆盖本地文件

2016-03-19 15:05:24 474 0

原创 C++服务器(三):多平台的构思与Windows下的tcp_socket

在做这个服务器的时候,遇到很多奇葩的问题。 以前做项目都是使用强大的VS,这次使用 G++编译器,配合 makefile 命令使用,算是了解了控制台下的项目是怎么做的了。若干话题 日志的IO 在main 前自动执行一段代码 多平台要解决多平台的问题,那么应该要有一个统一的接口,然后再分别实现。 ...

2016-03-18 16:34:03 638 1

原创 C++服务器(二):Windows下的socket编程

在上一篇博客中,我主要写了Linux下的sokcet编程,这篇文章,主要是想写一下Windows下的编程时怎样的。 为后期实现服务器的跨平台做好准备。以前刚好做过 TCP 、UDP socket 编程的一些工作,这里也顺便记录一下以前的内容吧UDPUDP是一种面向无连接、不可靠的传输层协议。 ...

2016-03-17 10:03:43 3762 0

转载 约瑟夫环问题--递归推导

本文为学习《剑指offer》的记录。因其原理在原作者博客上找不到,所以,只能自己编写记录,如有不当之处,欢迎指正。题目描述: n个数,编号为 0 , 1, ……, n-1 排成一个圆圈,从数字 0 开始,每次从这个圆圈中删除第 m 个数,请问最后一个剩下的数是多少?推导过程 定义一个函数 f(...

2016-03-16 15:43:23 2919 2

转载 N 个骰子的点数

直接参考原著: 程序员面试题精选100题(43)-n个骰子的点数[算法] 循环的解法比较巧妙,mark一下。

2016-03-16 14:54:59 214 0

原创 栈的输出队列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。我的看法: 一个比较直观...

2016-03-12 13:55:54 2198 0

转载 快速幂算法

原文:快速求幂算法 快速求正整数次幂 2007-05-05 12:21 快速求正整数次幂,当然不能直 接死乘。举个例子:3 ^ 999 = 3 * 3 * 3 * … * 3直接乘要做998次乘法。但事实上可以这样做,先求出2^k次幂:3 ^ 2 = 3 * 3 3 ^ 4 = (3 ^...

2016-03-10 15:31:10 282 0

转载 ubuntu 程序后台运行几个方法

转自ubuntu 程序后台运行几个方法 - 风之痕羁 - 博客园 程序后加上“&” ,即 “./myjob &”, 将命令放入到一个作业队列中,可以用命令“jobs” 查看将1中的命令放在 “()”中, 即 “(./myjob &)”,所提交的作业并不在作业列表中,是无法通过jo...

2016-03-10 08:52:47 11022 0

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