小键233

~~233

个人项目总结

个人项目总结 @todo

2019-05-18 18:00:10

阅读数 21

评论数 0

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

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

2017-11-15 12:38:53

阅读数 1004

评论数 0

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

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

2017-11-08 10:35:28

阅读数 206

评论数 1

无题

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

2017-07-29 15:05:20

阅读数 187

评论数 3

STL(七):stack 与 queue

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

2016-10-01 22:52:40

阅读数 318

评论数 0

STL(六):deque

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

2016-07-24 12:04:17

阅读数 327

评论数 0

OgreBullet 的使用

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

2016-06-16 20:15:47

阅读数 715

评论数 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

阅读数 1140

评论数 0

STL(四):list

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

2016-05-27 16:39:11

阅读数 1226

评论数 0

STL(三):vector

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

2016-05-25 09:13:07

阅读数 3426

评论数 0

STL(二):construct 与 destroy

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

2016-05-24 21:14:20

阅读数 391

评论数 0

STL(一):allocator 空间配置器

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

2016-05-24 20:49:54

阅读数 300

评论数 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

阅读数 652

评论数 0

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

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

2016-05-08 20:41:04

阅读数 515

评论数 0

模板

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

2016-05-08 11:12:13

阅读数 479

评论数 0

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

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

2016-05-07 13:49:12

阅读数 491

评论数 0

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

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

2016-05-07 12:46:30

阅读数 211

评论数 0

swap 函数的编写

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

2016-05-07 12:24:30

阅读数 648

评论数 0

以对象的形式管理资源

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

2016-05-07 11:20:45

阅读数 567

评论数 0

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

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

2016-05-06 16:16:51

阅读数 388

评论数 0

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