c
如果超人不会飞
这个作者很懒,什么都没留下…
展开
-
redis基础数据结构和数据对象
最近学习看黄健宏先生写的《redis设计与实现》,开篇即介绍了redis的基础数据结构和数据对象,看了一遍后觉得还是有点没弄明白相互之间的关系,觉得很有必要整理一下自己的思绪。1. redis基础数据结构 简单动态字符串 -SDS 双链表 -list 字典 -dicht(hashtable) 跳跃表 -skiplist 整数集合 -intset 压缩列表 -ziplis原创 2015-07-03 17:03:30 · 577 阅读 · 0 评论 -
跳跃表的实现
最近看redis,又看到了跳跃表,不记得什么时候在哪里做题遇到过,忍不住自己写了一个跳跃表。下面是一些核心代码。//// Created by ma on 2015/6/29.//#ifndef SKIPLIST_H_#define SKIPLIST_H_#include <stddef.h>#define MAX_LEVEL 16class Random{public: stat原创 2015-06-30 10:58:37 · 481 阅读 · 0 评论 -
关于linux锁的c++封装 条件锁,读写锁(不同方式实现读写优先)
封装linux的pthread_mutex_t作为普通锁,pthread_cond_t和pthread_mutex_t一起作为条件锁,能够等待和发送唤醒信号。最后结合二者分别实现了读写锁。两个普通的锁组合成写有限的读写锁,一个条件锁封装为读优先的锁//// Created by ma on 2015/5/29.//#ifndef LOCK_H_#define LOCK_H_原创 2015-06-08 11:27:18 · 1255 阅读 · 0 评论 -
c++ 固定分配大小的简单内存池
最近学习stl源码编程,一直想自己实现一个内存池,恰好前段时间2015阿里实习笔试有一道内存池的题目,将代码写在这里了。//// Created by ma on 2015/6/28.//#ifndef MEMORYPOOL_H_#define MEMORYPOOL_H_#include <stddef.h>typedef enum M_P_SIZE{ INIT_SIZE=16}M_P_原创 2015-06-28 12:34:32 · 837 阅读 · 0 评论 -
std::function用法
std::function的用法《effective c++》条款35上看到了 std::tr1和std::bind 的用法,以前从来没有接触过这两个功能。写一篇博客加深印象。std::function是c++11标准化的产物,在c++11官方文档上介绍是多形态函数包装(general-purpose polymorphic function wrapper),它的实例可以存储,拷贝,调用任何可ca原创 2015-06-26 22:21:30 · 5034 阅读 · 0 评论 -
华为OJ 名字的漂亮度
华为OJ 名字的漂亮度首先吐槽一下,这题目真的出的很恶心,出题的人一点都不认真。输入和输出中间,标准答案是回车,但是题目的描述看到的确实是空格,如果空格就会报格式错误。可见OJ平台做的不好确实是有原因的。。 贴上能通过oj测试的C++代码了#include <iostream>#include <string>#include <algorithm>int main(){ int a;原创 2015-08-25 17:01:10 · 498 阅读 · 0 评论