程序编写技巧:多if-else分支的优化
程序编写技巧:多if-else分支的优化 前言 我记得我在前一篇的Python博客中提到了对多重复杂的if/else分支上的优化,觉得这个内容非常的有意思。这里针对C++的部分,重新整理一下遇到的技巧。 我们很容易会问出来,为什么要优化过度的if/else分支?答案很简单,if/else分支拖的足够
程序编写技巧:多if-else分支的优化 前言 我记得我在前一篇的Python博客中提到了对多重复杂的if/else分支上的优化,觉得这个内容非常的有意思。这里针对C++的部分,重新整理一下遇到的技巧。 我们很容易会问出来,为什么要优化过度的if/else分支?答案很简单,if/else分支拖的足够
深入理解C/C++的编译与链接技术:导论 前言 这个是一个新的系列!是笔者本周打算系统深入开展研究的话题。具体来讲,我们会讨论和总结一系列的C/C++编程中,我们很有可能一带而过但是肯定被备受折磨的话题——编译与链接技术。我相信任何一个朋友都遇到过令人头疼的undefined referenced等
理解C++20的革命特性——协程引用之——利用协程做一个迷你的Echo Server 前言 我们很好的完成了一个迷你的调度器Schedular,和对应的Task任务抽象。现在我们来给我们的工程上难度——利用这个完成一个自己最最简单的Echo Server。 当然,一下子要求你立马完成一个Co Ech
理解C/C++异步IO编程——做一个RAII的Socket抽象 前言 在我们开始异步IO编程之前,咱们最好先理解一下Socket API有哪些。这篇博客,如我所言,只是说尝试给一个Reference,告诉看官那些抽象是我们需要做的。这样,我们后面构建更加现代的异步IO编程完全可以有更好的抽象。为此,
理解C/C++异步IO编程:IO多路复用技术与Epoll入门 前言 这一篇笔记是很多其他系列的基础部分,也是基于C/C++编程语言和Linux操作系统异步IO实现的一个绕不过去的话题。笔者曾经想将他归类为某一个子话题下,但是发现很多博客项目照样需要使用这个系列作为一个铺垫,索性作为一个单独的博客来聊
理解C++20的革命特性——协程支持2:编写简单的协程调度器 前言 在上一篇博客中,我们已经理解了C++20中最为简单的协程调度接口(尽管这一点也不简单)。显然,在这篇博客之前,我们的协程之间还是在使用单协程的调度器进行调度。看起来协程好鸡肋。啥也干不了。但是别着急,为了我们可以进一步的发挥协程的威
理解C++20的革命特性——协程支持1 什么是协程? 首先,引出协程,我们跑不了提到函数的运行时栈:调用一个函数时,运行时会为该函数分配一个栈帧,在栈帧中保存参数、返回地址以及函数中声明的局部变量——这就是函数的运行时环境。 协程的核心思想是:**函数可以在执行到一半时挂起(suspend),把执行
从《Life of A Pixel》来看Chrome的渲染机制 PPT本身就很精彩,你可以访问:Life of a Pixel - Google 幻灯片来看看Google自己是如何说明网页的内容(Web Content)是如何映射成Pixel的(像素) Chrome的渲染机制说的很简单,其实定义就是
精读C++20设计模式——行为型设计模式:策略模式 前言 我们天天都在用策略模式!标准库的算法在设计上就是一种策略模式! 策略模式的核心想法很简单:把算法/行为从使用它的类中抽离出来,封装成可互换的“策略(Strategy)”,并允许在运行时或编译期替换这些策略,从而实现算法的可扩展、可测试与解耦。
精读 C++20 设计模式:行为型设计模式 — 访问者模式 访问者模式是另一个经典的设计模式——它把“算法”与“数据结构”分离:把作用于一组对象的操作从对象中抽离出来,以便在不修改这些对象类的情况下添加新的操作。 这里会涉及到分发这个事情:分发其实就是一组判断逻辑执行后执行不用的结果函数(运行时决定