摘要:
造轮子是一件有趣的事情,VS是一个强大的工具,能胜任超大规模的工程,但是讲真,对不那么大的项目配置起来不是那么友好(网上的其他教程也一点都不友好Orz)。这里就展示一下构建一个简单的静态库的正确姿势。(顺便教一点道理 创建解决方案——许多人搞不清工程/项目Project和解决方案Solution的区 阅读全文
摘要:
引言 WPF框架采取的是MVVM模式,也就是数据驱动UI,UI控件(Controls)被严格地限制在表示层内,不会参与业务逻辑的处理,只是通过数据绑定(Data Binding)简单忠实地表达与之绑定的数据。 本文计划从数据端、控件端各自的实现要求,绑定的过程和中介等角度全面地剖析数据绑定的运行机理 阅读全文
摘要:
两个线程执行任务有同步和异步之分,看了Quora上的一些问答有了更深的认识。 When you execute something synchronously, you wait for it to finish before moving on to another task. When you 阅读全文
摘要:
透视I/O多路复用 我写的不是 这些函数的教学,需要了解的请自行Google或者去 ,这些是帮助我理解函数的封装之下的道理。 需要回答的问题 1. I/O准备好了指什么?什么叫I/O已经可读/写? 2. 内核如何开始监视?监视的模式如何? 3. 内核以何种机制通知进程? 4. 内核/用户态搬运数据的 阅读全文
摘要:
这是一道动态规划的经典问题,很多人的博客有写过,但是很多地方只有前半部分,后半部分题目有一些需要认真想想的点我也没见到令我满意的证明,不然我也不会再去写一次来说这个题目的。 问题描述 某国为了防御敌国的导弹袭击,发展出一种导弹 拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意 阅读全文
摘要:
比较模板的topological-sort题,关键在于每个元素都严格存在唯一的大小关系,而一般的拓扑排序只给出一个可能解,这就需要每趟排序的过程中监视它是不是总坚持一条唯一的路径。 算法导论里面的拓扑排序运用的是DFS the DAG,记录每个顶点的进入时间和离开时间,根据其先后插入单链表的做法。而 阅读全文
摘要:
在使用C++实现弱回调时,订阅者应当维护一系列发布者的weak_ptr,而发布者注册回调时要传出this的shared_ptr指针,流行的实现方法是使用std::enable_shared_from_this。 初次学习这个模板类时疑问了一下为什么不能依赖this直接产生一个shared_ptr?实 阅读全文
摘要:
使用exception specifications你必须非常仔细去确保,函数调用的子函数、注册的回调函数不会违背约定。而设计模板内部的异常更难确保。 设计回调机制的时候,如果调用方规定了不抛出异常,就必须确保注册进来的函数均不会抛出异常,书上给出了这样的做法: 并以CallBackPtr类型注册函 阅读全文
摘要:
PS:本文要解决的问题不算难度很大的问题,但“双优先队列”的方法是以前没有见过的,昨天睡觉突然想到的,以时间Ο(nlogn),空间O(n)的较好代价解决一类问题,记录一下。 问题抽象: 算法的设计中常会出现这种需求,一个对象有多种比较策略,而不同的比较往往会产生矛盾,目的是在一项指标的约束下实现另一 阅读全文
摘要:
(本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一、原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移。根节点状态记为0状态,表示起始状态。当一个状态处有一个模式串终结则标记一下。 目前流传较多的讲解多大同小异,尤其是配图,基本采用 阅读全文