Nessus离线升级包all-2.0.tar.gz【2019-04-23】
2019年04月23日下载的Nessus离线升级包,用于在局域网无法连接互联网的条件下更新。
高速对象池(内存池)类模板代码(C++)
包含定义代码和测试代码,代码不复杂,有注释,池对象存取时间复杂度为常数级,多线程测试速度可达千万次/秒。
使用方法如下:
1.定义池,例如:
FastPool<std::string> pool;
2.往池添加对象,例如:
pool.Add("abc");//要注意这里传入的是构造对象的参数
3.取出一个对象以使用,例如:
std::string* p = pool.Pop();
这一步可以跟上一步结合起来:
std::string* p = pool.AddAndPop("123");//这时候p就指向"123"这个刚加入池的std::string对象
4.存回对象以重用,例如:
pool.Release(p);
5.还有的时候需要删除池中的对象,例如:
pool.Delete(p);//只删除一个对象
pool.DeleteNotUsed();//删除池中未使用的对象
pool.DeleteAll();//删除池中所有对象
上面的示例只是模板参数为std::string 时的用法。还有一些函数未列出。希望代码能给大家带来启发。
重新检查了一次,发现模板代码中区分类和基本数据类型的代码用到了另外自定义的库。需要做如下修改:
#include<type_traits>
//先定义一个模板用以区分类和基本数据类型的行为
template<class TT, bool val>struct ChangeClass {typedef typename TT Type;};
template<class TT>struct ChangeClass<TT,false> {typedef typename std::vector<void*> Type;};
然后代码中的
typedef typename LK::Templates::UseT<LK::Templates::IsClassOrUnion<T>::value, std::vector<void>, T>::type TP;
if (LK::Templates::IsClassOrUnion<T>::value)
改为:
typedef typename ChangeClass<T, std::is_class<T>::value>::Type TP;//防止非类调用析构函数导致的错误
if (std::is_class<T>::value)
最后,欢迎喜欢编程的伙伴来qq群244953928探讨O(∩_∩)O
一个内存分配器,C++代码
templateBlockMemory;
类模板用于进行size指定块大小的内存分配。
比如BlockMemory bm;
则bm专门用来分配内存大小为sizeof(void*)字节的内存。
结合dlmalloc使用时,可以节省大量内存空间
详情请加QQ群:
C++初学群:235916384
C++新手群:244953928
C++进阶群:145394317
C++/CLI群:271463461
C++11群:320580899
采用托管c++编写的一个网络即时音频传输工具
基于.NET3.5和DirectSound编写,可实现局域网内音频的高质量、低延时传输。
分服务器端和客户端。使用时须先让服务器端监听,再让客户端连接。连接后,客户端将从默认录音设备采集到的音频数据发送,而服务器端将自动播放。可同时开启多个客户端和服务器端。
附有源代码。