- 博客(7)
- 资源 (40)
- 论坛 (2)
- 收藏
- 关注
转载 我读过的最好的epoll讲解--转自”知乎“
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket...
2018-12-25 19:46:51
117
原创 Linux 下强大的Vim插件 vimplus
最近在Linux下开发,发现有一款极其强大的插件,附上github介绍地址:https://github.com/chxuan/vimplus里面安装方法都有,最后成功的界面:
2018-12-20 19:17:32
1354
原创 C++ 静态成员对象的定义陷阱
我们先来看一段代码,展示一个奇怪的地方: #include <iostream>using namespace std; class A{public: A() { cout << "A's Constructor Called " << endl; } int a;};class B{ public: B() { co...
2018-12-17 16:06:24
951
原创 C++实现反射(利用字符串创建对象)
JAVA,C# 中都具有反射机制,但是C++没有语法支持,但是可以自己实现,来通过字符串产生对象,其实仅仅是个语法糖而已实现思路: ClassFactory类的一个map 存储 key 相应的类名 和 value 创建该类对象的函数地址 , ClassFactory类提供CreateObjectByName方法创建该类的对象:这个方法的本质就是调用map中存储的函数地址来调用对应得的...
2018-12-15 19:03:25
1549
1
原创 一个简单高精度定时器设计
下面设计了一个轻量的高精度定时器类,主要使用timeGetTime()函数: DWORD timeGetTime(VOID);返回系统时间,以毫秒为单位。系统时间是从系统启动到调用函数时所经过的毫秒数。注意,这个值是32位的,会在0到2^32之间循环,约49.71天。 代码设计非常简单,需要配合一个while(true)循环来使用, 这个循环你当然可以放到一个线程中:#in...
2018-12-14 18:39:39
540
原创 对于vector中高效删除中间元素的技巧
众所周知,vector是连续存储空间,只提供高效的尾部删除方法pop_back() ,在中间删除的效率很低,那么如果大家想快速删除中间元素该如何实现?话不多说,看代码://移除vector元素,最后一个填充。template<typename T>inline void ListRemoveAt(vector<T>&list, size_t id...
2018-12-13 19:07:42
2520
4
原创 sizeof(*this) 在虚函数中的使用误区
不要以为基类使用了虚函数 GetSize() ,sizeof(*this)并不能正常返回派生类的大小, 并且使用了virtual 后,有虚函数表,导致容量+4!!!#include <iostream> #pragma pack(1)struct A{ char a; virtual int GetSize() { return sizeof(...
2018-12-03 21:56:10
284
UGUI Super ScrollView 最新版2.3.2
2019-02-23
openGL的实用工具包 GLUT库
2011-10-23
网上最全的LearnVC[学VC、编游戏](学opengl编3d游戏_cai的姐妹篇
2011-10-07
有没有java SSH bbs源码?
发表于 2013-05-09 最后回复 2015-01-10
测试
发表于 2013-06-13 最后回复 2013-06-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝