自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 Triangle (go语言)

Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacentnumbers on the row below.给定一个三角形矩阵,从顶向下,逐行选区一个数(节点)组成一个路径,这个路径上的每个数(节点)相加的值为这条路径的值,求最小的路径值。在这个路径中某一行的节点必须与下一行的节点相邻。For example, given the following triang

2020-06-26 23:49:03 243

原创 观察者模式的实现

测试环境:visual studio 2017。测试参数:标准符合:C++ 14 和 C++ 17理论上也符合C++ 11。EventWrap实现的是主题类(发布者)Observer的派生类是观察者。这个实现新颖的部分是:1、Observer的析构函数声明为虚函数,这样才能保证对Observer的指针实施delete操作时析构指针指向的子类。析构函数的显式声明导致我们不得不...

2018-10-10 16:56:21 231

原创 C++的命名规范

C++的实践中存在多种多样的命名方法。选择一种逻辑自洽的方案并实施到自己的开发中是一件令人愉快的事。一、匈牙利命名法这是一套完整的命名体系,包含一系列规则,VC++采用这种命名规则。windows API、MFC等,在Windows中一切(也有一些例外:如ISO规定的标准库)与C++有关的技术,均采用匈牙利命名法。unix的东西常常被追捧(例如:vim、Emacs,即使它们已经太过古老),...

2018-09-03 04:30:41 707 1

原创 C++ 11实现的线程池

我在工作中经常使用一个线程安全的队列在两个线程间通信。一个线程发布任务,一个线程处理任务,这么做一般为了保证发布任务的线程及时响应网络或其他事件。也有遇到一个线程发布任务,多个线程处理任务的情况,一般这么做是为了利用多个CPU。今天介绍一个简单的线程池,当稍微修改代码,把启用线程数修改为1的时候,就成了上面介绍的一个线程发布任务,一个处理任务的模式。下列代码里使用的threadsafe_q...

2018-09-01 23:42:14 208

原创 C#和C++的互操作——C++ dll 通过回调向C#传送报文(字节流)

C++的DLL通过一个回调函数每隔1秒向C#的程序传送一个报文(字节流),回调函数的签名为 int fun(char* data,int len)这个字节流中包含的是下面这个结构体中的数据:typedef struct Msg{    INT64 duration;    char note[100];}Msg;C#把得到的数据显示在控制台上。源码在GitHubhttp...

2018-08-23 15:45:33 1789

原创 log4cplus的使用方法

我们需要1至N个记录器——即log4cplus::Logger对象。写日志时,需要把指定Logger对象作为参数传入。我写了一个类,用来创建和配置一些log4cplus::Logger对象。有一个配置文件,可以在运行时修改日志的配置。如果缺少这个配置文件,程序会自动生成。移植性:这个类使用了windows C运行时的API。这个类能适配MBCS或UNICODE字符集。头文件:exte...

2018-08-19 23:37:20 1775

原创 C++获得时间戳 ——C++11和C的实现

steady_clock::duration d = steady_clock::now().time_since_epoch(); minutes min = duration_cast<minutes>(d); seconds sec = duration_cast<seconds>(d); milliseconds mil = duration_cast&l...

2018-08-18 17:12:26 14000 8

原创 C++11 创建一个线程

#include <thread>class SomeTask{public: void Start() { if (taskThread_.get_id() == std::thread::id()) { taskThread_ = std::thread(&SomeTask::Work,this,100,'a'); } }private:...

2018-08-18 00:01:47 2342 1

原创 std::shared_ptr<T>的对象是否是线程安全的

在MSDN的描述为:Multiple threads can simultaneously read and write different shared_ptr objects, even when the objects are copies that share ownership.也就是说多个线程同时读写一个std::shared_ptr&lt;&gt;变量不安全。但多线程可以同时读写...

2018-08-16 00:05:59 1538

原创 C++的线程安全的队列

(1)这个实现要求构建工具支持C++11的atomic mutex condition_veriable功能。这是C++11的基础特性,一般2011年以后的C++编译器都能支持。 例如,visual studio 2012以上。(2)这个类的实现中有两处使用了unique_lock而不是lock_guard,这是data_cond.wait所需要的,unique_lock是lock_gu...

2018-08-15 14:55:17 4363 3

原创 单例模式的线程安全的实现(五种C++的实现方式和一种C#的实现方式)

一、第一种实现,行为依赖编译器class Singleton{public: static Singleton* Get() { static Singleton s; return &s; }private: Singleton() { printf("hello"); }};上述实现方式的线程安全性依赖编译器。如果编译器实现了“静态局部对象初始...

2018-07-28 10:31:51 587

ISOIEC14496-10-2014

当前最新的H264的ISO文档。H264的最终解释权归本文档所有。当然,还有若干修正文档,这只是主文档。

2018-10-25

ISO-IEC-9899-2011 ISOIEC 14882 1998 2003 2011 2014 2017 及其依赖文档

C++ ISO文档(1998 2003 2011 2014 2017)和 C语言ISO文档(2011)的ISO文档 包含依赖文档:ISO-IEC2382-1-1993和UnicodeStandard。

2018-10-17

Windows 核心编程(第五版)Windows via C/C++ (Pro - Developer)

本资源同时包含中文和英文版 均是第五版,英文版包含两份电子书,这两份英文版电子书内容一致,文件大小有轻微差异。 中文名称:Windows 核心编程(第五版) 出版日期:2008年9月1日 英文名称:Windows via C/C++ (Pro - Developer) 出版日期:2008 作者:Jeffrey Richter 我对作者的印象: 微软官方顾问,开发了大量程序库。Windows的C++和C#功底和见识世界一流。 它的另一个著作CLR via C#(第4版)对C++程序员也能起到关键作用,能把C++程序员带到 另一个世界——站在C#那种高度架构和高度设计的高度去领悟程序设计,并且能自然的让 C++程序员把这种领悟带到C++的世界中。

2018-10-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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