随笔分类 - C&C++
摘要:博客原文地址 C++ Concurrency in Action, 2nd / 其他参考:阅读笔记(中文) / 第二版网友中文翻译 / C++17 并行算法 graph TB A[co-algs] B[exe policy] C[seq<br/>curr thread] D[par] E[par_u
阅读全文
摘要:博客原文地址 A coroutine is a function that can suspend execution to be resumed later. 协程不是系统级线程,很多时候协程被称为“轻量级线程”、“微线程”、“纤程(fiber)”等。简单来说可以认为协程是线程里不同的函数,这些函
阅读全文
摘要:原文地址 graph TD A[exception] B[SJLJ] C[Table Base] D[影响编译优化] E[替换方案] F[Expected: value & exception] G[noexcept] A-->B A-->C C-->D A-->E E-->F D-->G Tips
阅读全文
摘要:算法复杂度与执行时间 实际测试 通过测试(代码见下文,编译指令:g++ -std=c++11 -O0 t.cpp)当代计算机耗时如下表所示,测试机器: Ubuntu 20 CPU,intel i7-8750H Mem,16G & DDR4 & 2400MT/s 测试结果 执行次数 优化选项 耗时(m
阅读全文
摘要:修改 vimrc 文件后执行 :PlugInstall,安装对应的插件 " 0. plug pack: https://files.cnblogs.com/files/jiahu-Blog/vim_config.zip " 1. git && clang-format is need " 1. ub
阅读全文
摘要:Effective C++ 参考: Effective C++, 3rd edition trivial tips 技术 C++ 是多范式语言 视 C++ 为一个多范式编程语言,C++ 支持过程、OO、OB、泛型、函数式编程与元编程等范式(1) 尽量避免宏 #define 的使用(2) 尽可能使用
阅读全文
摘要:gprof 可视化 gprof 是 GNU 工具之一,它在编译的时候在每个函数的出入口加入了 profiling 的代码,运行时统计程序在用户态的执行信息,可以得到每个函数的调用次数,执行时间,调用关系等信息,简单易懂。适合于查找用户级程序的性能瓶颈,对于很多时间都在内核态执行的程序,gprof 不
阅读全文
摘要:ostringstream 性能测试 分析与建议 性能分析 ostringstream 格式转换的性能并不差,至少从测试上看与 snprintf 差距不是数量级上的 每次创建一个 ostringstream 对象都会触发一次全局 locale 对象的引用计数递增(参考1,参考2),多线程场景下有 f
阅读全文
摘要:# CPU & 多线程 本文是阅读《大话处理器》的读书摘要 graph TD A[大话处理器] B[流水线] C[3级&5级流水] D[3类冒险] E[分支预测&乱序执行] F[超标量&VLIW] G[Cache 一致性] H[写通&写回] I[MESI] J[并行] A --> B B -->
阅读全文
摘要:词法&语法分析基础 将文本转化为可以执行的程序一般需要词法分析、语法分析、语义分析和后端处理等步骤。如非学习从头开始写这些工具其实非常浪费时间,所以一般使用现成的工具生成语法解析代码 本文所用的部分参考资料: flex & bison 自己动手写编译器,推荐阅读 自制编程语言 两周自制脚本语言 Wh
阅读全文
摘要:```makefile 本 makefile 文件适合小型和中型 c/c++ 项目 参考:http://www.partow.net/programming/makefile/index.html 参考:陈皓,《跟我一起写 Makefile》,https://files.cnblogs.com/fi
阅读全文
摘要:cereal —— C++11 序列化库 介绍 cereal 是一个只包含头文件的C++序列化库,cereal支持任何类型的数据并可以将其序列化为不同形式,例如:二进制、XML或者JSON。 cereal 的设计理念是快速、轻量级和容易扩展——cereal没有依赖第三库而且可以轻易的将其和其他代码相
阅读全文
摘要:数组类(Array)和元素操作 原文地址:[ ][0] Array 类有什么用? Array 类提供了一个一般用途的数组,用于操作元素相关算法,就像 Matrix 专门用于实现线性代数算法。更具体一点,Array 提供了对元素进行操作的方法,这些操作大部分与线性代数算法无关。比如数组中每个元素都加一
阅读全文
摘要:Matrix&Vector的运算 原文地址:[ ][0] 本章主要对矩阵、向量和标量之间的计算做一些简要介绍 介绍 为了实现矩阵(向量)之间的计算,Eigen 同时提供了运算符重载(+、 、×、/ 等)和类方法(dot()、corss() 等)两大形式的工具。对于 Matrix 类,重载的运算符只支
阅读全文
摘要:Eigen 3.3.7,Matrix 模板类 原文地址:[ ][0] 在 Eigen 中,所有的矩阵和向量都是 Matrix 模板类。向量是特殊的矩阵,有着一行或者一列数据。 Matrix 的前三个模板参数 Matrix 有六个模板参数,这里我们只介绍前三个。后三个模板参数有默认值,我们将在其他小结
阅读全文
摘要:Eigen 3.3.7 入门教程 原文地址:[http://eigen.tuxfamily.org/dox/GettingStarted.html][4] 学完当前教程后可以参考 [The Matrix class][0] 进行进一步学习。 如何安装 Eigen 因为 Eigen 是 header
阅读全文
摘要:Catch 使用教程(入门,官方文档翻译) 原文地址:[https://github.com/catchorg/Catch2/blob/master/docs/tutorial.md][0] 1. 获得 Catch 2. 如何使用? 3. 编写测试用例 4. 测试用例和测试区段 5. BDD Sty
阅读全文
摘要:依赖于opencv [这里][0]有已经提取好数据 [0]:https://pan.baidu.com/s/1c2tXlss
阅读全文
摘要:这里有已经提取好的图片: "百度云共享" 主要依赖于opencv 代码 include include include include include using namespace std; define PRINT(x) cout= 0; i ) { result += ptr[i] pow (
阅读全文
摘要:常见问题 无法打开文件“libboost_filesystem vc140 mt sgd 1_64.lib”。[参考][1] 重新编译Boost 选项说明 link=static/shared,静态或者动态编译boost runtime link=static/shared,boost是否需要依赖v
阅读全文

浙公网安备 33010602011771号