
C++
文章平均质量分 76
Luchang-Li
为什么要博客呢?一是为了记录学习,在写作中增强对知识认知深度,二是为了传播知识本身。
正如自动驾驶的不同层级一样,一个人对知识的掌握也分为了很多层级,比如我认为:
L0:对一个东西没有任何认知。
L1:大致了解基本概念,能够使用,但不知道内部深层次的原理,没法表达清楚。
L2: 基本知道内部的原理,能够比较流畅地表达出来。但能够书面表达往往不意味着能够口头表达,比如能写出PPT,但是不意味着能讲好PPT。
L3:能够流畅地,深入浅出地口头表达,能够准确地回答别人的问题和质疑。
所以可见,表达(不管是博客这种书面还是口头表达)是能够加深你对知识的架构化认知,表达地清晰与否也直接证明了你的认知深度
展开
-
c/c++ python之间named pipe进程间通信
https://www.cnblogs.com/MrListening/p/5858358.htmlhttps://www.cnblogs.com/biyeymyhjob/archive/2012/11/03/2751593.htmlhttps://zhuanlan.zhihu.com/p/58489873https://www.cnblogs.com/-wenli/p/13100104.html原创 2021-01-05 19:21:53 · 1882 阅读 · 2 评论 -
不同C++库ABI兼容问题解决方法
工作中偶尔会遇到使用多个C++库,但是这些库采用不同ABI编译的情况,有的采用ABI=0,有的采用ABI=1,不同ABI的so库是无法直接链接使用的。通常有两种解决方法:1:获得所有库的代码,从源码开始将所有库编译成相同的ABI设置。但有时候这个方法由于不开源不可能实现,或者实现非常麻烦。2:可以考虑通过适配器方式,通过C接口(extern C)的方式对库进行封装开放C API,使得不同ABI都可以进行调用。...原创 2020-11-24 20:48:21 · 2879 阅读 · 0 评论 -
C++通过pybind11调用Python 实现transpose
https://www.jianshu.com/p/c912a0a59af9https://stackoverflow.com/questions/44659924/returning-numpy-arrays-via-pybind11https://gist.github.com/terasakisatoshi/79d1f656be9023cc649732c5162b3fc4原创 2020-11-19 17:37:54 · 4221 阅读 · 0 评论 -
C++11 常用新特性
https://docs.microsoft.com/en-us/cpp/cpp/smart-pointers-modern-cpp?view=vs-2019https://docs.microsoft.com/en-us/cpp/cpp/how-to-create-and-use-shared-ptr-instances?view=vs-2019https://www.cnblogs.com/jiayayao/p/6128877.htmlraw指针需要手动new delete而智能指.原创 2020-05-12 21:32:03 · 1352 阅读 · 0 评论 -
vs code代码提示插件tabnine
之前一直用sublime,最近转到vs code,发现vs code真是变得跟sublime一模一样了啊。然而,使用过程中,发现vs code代码提示实在是有点垃圾,跟sublime差了几条街(即使装了C++的那些插件)。正准备放弃vs code时,朋友推荐了个插件tabnine,效果果然提升明显,顿时省去了80$的花费啊,*_*下载地址https://tabnine.com/...原创 2019-10-29 16:27:53 · 8113 阅读 · 0 评论 -
超级简单清晰的makefile教程
超级简单清晰的makefile教程:Makefiles基础:https://www.cprogramming.com/tutorial/makefiles.htmlMakefiles进阶:https://www.cprogramming.com/tutorial/makefiles_continued.html看了这两个教程,完全不懂makefile的小白都能顺利阅读和编写mak...原创 2019-10-27 12:53:02 · 366 阅读 · 0 评论 -
windows系统C++搜索文件和文件夹
#include <iostream>#include <vector>using namespace std;#include <afx.h>#include <windows.h>bool IsStringEndWithPostfix(wstring DirName, wstring PostFix){ int str_l...原创 2019-08-26 18:26:20 · 907 阅读 · 0 评论 -
MDK开发的一些问题和技巧
在main函数里面创建大的数组会失败,即使使用malloc, new也如此。需要将其创建为全局数组C++开发设置:去掉C++--C99选项,在misc control 输入--cpp使用printf需要Target 勾选use micrlib下载设置Utility设置 reset and run...原创 2018-07-29 22:47:20 · 482 阅读 · 0 评论 -
单片机编程常用位运算
位定义 - 参考STM32 ST官方库#define GPIO_PIN_0 ((uint16_t)0x0001) /* Pin 0 selected */#define GPIO_PIN_1 ((uint16_t)0x0002) /* Pin 1 selected */#define GPIO_PIN_2 ...原创 2018-07-25 10:20:52 · 3165 阅读 · 0 评论 -
CUDA GPU程序优化要点 - 如何做到又好又快
相比使用CPU进行计算,使用GPU加速往往可能得到数倍数十倍的性能提升,而使用CUDA C编程时,编程风格和细节往往会对成像性能造成很大的影响。下面列举了一些本人总结的优化CUDA GPU程序的一些要点,欢迎批评和补充。原创 2015-12-10 20:21:51 · 2997 阅读 · 0 评论 -
CUDA GPU编程如何避免Bank conflict
CUDA GPU编程中,Shared memory操作不当时,会引入Bank conflict,从而导致程序性能的大大降低,而如何解决Bank conflict,是一个非常重要的问题。原创 2015-12-10 19:24:08 · 9427 阅读 · 1 评论 -
图像平均 均值滤波抑制噪声的数学原理
上图像处理课程时,老师可能讲到N张图像求和或求平均信噪比提升根号N倍,可能不知其所以然。为什么是这样的呢?因为最终的图像是这些图像的求和,图像和图像之间的噪声是独立的加性噪声,因而总的噪声是平方求和的关系。..................原创 2016-01-24 22:56:17 · 8578 阅读 · 0 评论 -
CUDA Unified Memory统一内存使用注意
CUDA 6.0推出了统一内存寻址(Unified Memory)的方式,可以大大简化CUDA程序的编写,但有编程的时候几个小的注意点需要注意。原创 2016-04-13 10:17:18 · 9546 阅读 · 0 评论 -
HSV颜色到RGB的转换C++代码 直接可用
在生物医学图像处理等领域中,有时候会遇到一些颜色编码的应用。例如,对于一个3维物体结构显示成平面2维,考虑用颜色对深度编码,而用亮度编码反应实际的亮度。RGB是非常常用的颜色模型,然而使用RGB实现颜色和亮度这两个正交分量的同时编码,显然是非常困难的。除了RGB,此外还有HSV/SHB,HSL等颜色编码方案满足不同的需求,其中,HSV非常契合实现颜色和亮度的同时编码的需求。参考:http://colorizer.org/ 然后需要将HSV颜色转换为RGB颜色进行图像显示,这里给出一个已经调试通过的原创 2016-07-22 19:58:35 · 11627 阅读 · 0 评论 -
CUDA GPU编程中使用结构体/类传递函数参数
CUDA GPU编程中使用结构体传递函数参数 CUDAGPU编程中,虽然统一寻址(Unified Memory)技术能够大大简化编程难度和代码复杂度,但是速度略有牺牲,同时对运行环境提出更多的要求。而在不使用这项技术时,编程时需要同时创建CPU(host)和GPU(device)端的变量指针,然后为其分别分配内存。操作完成后,再分别释放内存。CUDA工程的范例程序中,单原创 2016-09-21 10:24:19 · 10992 阅读 · 0 评论 -
CUDA 动态链接库与静态链接库
参考《CUDA C BEST PRACTICES GUIDE》 chapter 15 PREPARING FOR DEPLOYMENT,关于部署CUDA加速的程序时,往往对CUDA加速的程序编译为动态链接库或者静态链接库。这两者导致的区别是,使用动态链接库,在目标机器上运行时,必须一并安装和编译库时一样的CUDA版本,而静态库没有这样的要求。可见静态库对使用者来说可能更加方便。原创 2016-10-03 09:37:34 · 3895 阅读 · 1 评论 -
extern与__declspec(dllimport)的区别
"extern" is for statically linked libraries?"__declspec(dllimport)" is for DLL (dynamically linked libraries)?both do actually the same job for their respective type of linking?you need to use b转载 2017-07-13 12:59:08 · 1055 阅读 · 0 评论 -
BFGS C++优化算法曲线拟合实现
BFGS是一个简单,高效,精确的优化算法,在曲线拟合等最优化领域有非常重要的用途。其原理在这里有详细的介绍:http://blog.youkuaiyun.com/itplus/article/details/21897443基于这个原理的介绍,我编写了一个C++ BFGS 曲线拟合的代码:http://download.youkuaiyun.com/download/u013701860/10150187原创 2017-12-07 21:06:49 · 3534 阅读 · 1 评论 -
C++ 读取文件夹内文件名-windows环境
网上找了好多代码都不好用,一下代码测试通过,可以读取当前目录下文件名,未对子目录进行搜索,为unicode编码。实测通过。#include <iostream>using namespace std;#include <vector> //#include <windows.h>#include <afx.h>void GetF...原创 2018-06-26 17:24:56 · 1094 阅读 · 0 评论 -
#define 乘除法可以不加括号?
#define mul 10*20;#define div 30/mul;int a=mul;int b=div;cout原创 2014-08-18 10:50:35 · 2489 阅读 · 0 评论