- 博客(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 246
原创 观察者模式的实现
测试环境:visual studio 2017。测试参数:标准符合:C++ 14 和 C++ 17理论上也符合C++ 11。EventWrap实现的是主题类(发布者)Observer的派生类是观察者。这个实现新颖的部分是:1、Observer的析构函数声明为虚函数,这样才能保证对Observer的指针实施delete操作时析构指针指向的子类。析构函数的显式声明导致我们不得不...
2018-10-10 16:56:21 234
原创 C++的命名规范
C++的实践中存在多种多样的命名方法。选择一种逻辑自洽的方案并实施到自己的开发中是一件令人愉快的事。一、匈牙利命名法这是一套完整的命名体系,包含一系列规则,VC++采用这种命名规则。windows API、MFC等,在Windows中一切(也有一些例外:如ISO规定的标准库)与C++有关的技术,均采用匈牙利命名法。unix的东西常常被追捧(例如:vim、Emacs,即使它们已经太过古老),...
2018-09-03 04:30:41 709 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 1800
原创 log4cplus的使用方法
我们需要1至N个记录器——即log4cplus::Logger对象。写日志时,需要把指定Logger对象作为参数传入。我写了一个类,用来创建和配置一些log4cplus::Logger对象。有一个配置文件,可以在运行时修改日志的配置。如果缺少这个配置文件,程序会自动生成。移植性:这个类使用了windows C运行时的API。这个类能适配MBCS或UNICODE字符集。头文件:exte...
2018-08-19 23:37:20 1779
原创 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 14015 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 2344 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<>变量不安全。但多线程可以同时读写...
2018-08-16 00:05:59 1540
原创 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 4367 3
原创 单例模式的线程安全的实现(五种C++的实现方式和一种C#的实现方式)
一、第一种实现,行为依赖编译器class Singleton{public: static Singleton* Get() { static Singleton s; return &s; }private: Singleton() { printf("hello"); }};上述实现方式的线程安全性依赖编译器。如果编译器实现了“静态局部对象初始...
2018-07-28 10:31:51 594
ISO-IEC-9899-2011 ISOIEC 14882 1998 2003 2011 2014 2017 及其依赖文档
2018-10-17
Windows 核心编程(第五版)Windows via C/C++ (Pro - Developer)
2018-10-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人