
C/C++编程
文章平均质量分 72
深海沙砾
无所从来,无所从去。应如是住,如是降伏其心。
展开
-
pybind11 连接C++11和Python
pybind11是一个轻量级的头文件库,它在Python中暴露了C++类型和方法,反之也可以在C++中使用Python方法,主要用于创建现有C++代码的Python绑定。原创 2022-11-01 00:28:22 · 646 阅读 · 1 评论 -
CMAKE 实现自动区分不同版本库
开发SDK时,经常需要依赖第三方库。此时需要考虑库的版本问题,一方面针对不同的编译器和Release、Debug版本灵活选择不同的第三方库,另一方面生成不同版本的库,并能被其他项目灵活引用。CMAKE此时体现其重要作用。这里记录并分析开源OCR项目Tesseract的编译过程。Tesseract 依赖第三方库leptonica,使用方法为: find_package(Leptonic...原创 2018-06-10 01:50:07 · 5461 阅读 · 0 评论 -
CMake 七步入门
前言CMake是什么? 官网给出的定义是这样的:”an open-source, cross-platform family of tools designed to build, test and package software”。很容易理解它是一个编译工具,是一个测试工具,也是一个打包工具,它其实就是一个工具箱,可以完成编译,测试以及打包的工作。原创 2017-04-08 14:29:40 · 613 阅读 · 0 评论 -
CMake 3.8.2 Online Manuals
Reference ManualsBuild SystemCommandCompile FeaturesDeveloperGenerator ExpressionsGeneratorsLanguageSeverModulesPackagesPropertiesQTToolchainsVariablesSearchSearch Page转载 2018-06-09 16:04:16 · 262 阅读 · 0 评论 -
【Linux 日常】设置动态链接库目录
方法一: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:path_to_add 该方式为临时的,系统重启则失效。方法二: sudo vim /etc/ld.so.conf添加库路径 (表示当前目录) 保存后 执行命令 sudo ldconfig可通过ldd 查询可执行文件的依赖项是否正确。 如:root@VM-0-12-ubuntu:~...原创 2018-05-29 16:48:39 · 1075 阅读 · 0 评论 -
C++中##与#define 用法记录
在VTK中有一类vtkPointsProjectedHull,关于该类的说明是这样的: the convex hull of the orthogonal projection of the vtkPoints in the 3 coordinate directions意思就是,将一空间点集投影到某一坐标平面并求解2d凸包,投影平面有三种:XY平面,XZ平面,YZ平面。 该类...原创 2018-06-11 23:27:53 · 789 阅读 · 0 评论 -
算法【查找一】
高效检索计算机和网络中的海量信息,是处理它们的前提。本节开始,分三节总结三种经典的数据类型,用于实现高效的查找方法,亦即符号表。该三种数据类型分别为:二叉查找树、红黑树、和散列表。关于符号表的定义: 符号表是一种存储键值对的数据结构,支持两种操作:插入(input),即将一组新的键值对存入表中; 查找(get),即根据给定的键得到相应的值。表格 | 时间 放大 | 放大...原创 2018-05-15 02:59:19 · 265 阅读 · 0 评论 -
某站视频python抓取: m3u8转mp4
之前利用python简单爬虫抓过一些图片,最近想到了抓取视频。由于很多地方视频不提供下载。所以觉得有必要学习一下,以备不时之需。备注:这里仅记录碰到的网站视频实例,不保证适用所有情况。基本概念与思路 目标问题是,在某视频网站下载喜欢的视频文件并保存为MP4格式。这里涉及到几种文件格式。一般网络视频都采用的流协议,具体内容非专业领域不是很了解,不深入讨论。在我想抓取的视频站中,发现原视频数据分...原创 2018-05-19 19:00:11 · 21759 阅读 · 4 评论 -
GDB 主要调试命令
The purpose of a debugger such as GDB is to allow you to see what is going on "inside" another program while it executes -- or what another program was doing at the moment it crashed.原创 2018-05-17 03:45:47 · 310 阅读 · 0 评论 -
算法【排序三】
高效排序(快速排序)快速排序可能是应用最广泛的排序算法,实现简单,适用于各种不同的输入数据且在一般应用中比其他排序算法都要快的多。快速排序是一种分治的方法。将一个数组分成两个子数组,将两部分独立地排序。快速排序和归并排序互补:归并排序将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序;而快速排序则是当两个子数组都有序时整个数组也就自然有序。归并排序,递归调用发生在处理整个数...原创 2018-04-01 20:39:50 · 386 阅读 · 2 评论 -
算法【排序四】
优先队列与堆排序首先,介绍优先队列的概念与应用许多应用程序都需要处理有序元素,但不一定要求全部由序,或者不一定要求一次性排序。多数情况下,我们会收集一部分元素,处理当前键值最大的元素,然后再收集更多的元素,再处理当前键值最大的元素,如此这般。例如,手机能够同时运行多个应用APP。这是通过为每个应用的事件分配一个优先级,并总是处理下一个优先级最高的事件来实现的。绝大多数情况下手机分配给来电的...原创 2018-04-08 19:37:05 · 223 阅读 · 0 评论 -
Vim常用命令整理
利用思维导图对Vim的基本命令进行分类整理,清晰明了。方便随时查阅。原创 2018-03-26 13:13:03 · 219 阅读 · 0 评论 -
算法【排序二】
高效排序(归并排序)这里开始分析比初级排序更高效的方法——归并排序。归并排序的核心思想为将两个有序的数组合并成一个更大的有序数组。对一个数组进行排序,可以将它分成两部分分别进行排序,然后将结果归并起来。此时不难发现,分割的子数组同样可以利用切分再归并的方式进行排序。这是一个递归调用的过程。高效排序(归并排序)归并方法自顶向下归并自底向上归并归并排序局限性...原创 2018-03-24 16:42:46 · 248 阅读 · 0 评论 -
算法【排序一】
算法系统学习首篇之排序排序在商业数据处理和现代科学计算中的重要性不言而喻。它能够应用于日常事物处理、组合优化、天体物理学、分子动力学、语言学、基因组学、天气预报和其他相关领域。 20世纪科学与工程领域的十大算法之一就是一种排序算法——快速排序。在标准库中已经实现排序函数,再学习排序算法仍有重要实际意义。再重温排序算法之前,我并没有意识到。对排序算法的分析将有助于全面理解比较算法性能的...原创 2018-03-15 22:58:06 · 212 阅读 · 0 评论 -
12球称重问题
问题: 12个外表一样的小球,有11个球重量相同,另1个球为“坏球”,可能比较重,也可能比较轻。 如何利用天平称重3次来找出这个“坏球”?分析: 12个球中的某一个球为坏球,该事件的信息熵 H1H_1 即为 ∑12112−log(112)=log(12)\sum^{12} \dfrac{1}{12}-log(\dfrac{1}{12})原创 2018-01-08 23:46:25 · 5673 阅读 · 0 评论 -
pcl::PolygonMesh简析
PCL利用VTK的IO接口,可以直接读取stl,ply,obj等格式的三维点云数据。pcl的接口方法为int pcl::io::loadPolygonFile (const std::string &file_name, pcl::PolygonMesh& mesh);这里要说明的对象即是PolygonMesh这个类。原创 2017-04-19 16:14:40 · 19703 阅读 · 18 评论 -
判断文件是否为二进制
在工作中,碰到处理STL文件,有时候拿到的文件是二进制,有时候又是ASCII, 所以想着写个方法进行判断,然后再选择打开方式。话不多说,上代码!enum FileTypeEnum { FileTypeUnknown, FileTypeBinary, FileTypeText };FileTypeEnum原创 2017-04-14 20:56:19 · 4178 阅读 · 1 评论 -
C++编码规范 —— Google C++ Style
一名称职的码农,就该打理好自己的田地,高质量产出!原创 2017-04-08 22:50:42 · 459 阅读 · 0 评论 -
Pthread使用总结
摘要最近由于开发需要用到多线程,以前看的ARTOOKIT项目中有用到pthread,所以又重新看了一下,重点分析了它的多线程实现。它的实现方式的确很nice,以前没有注意到,现在整理在这里,一方面便于以后查询,另一方面也方便其他人。Pthread设计思路多线程编程设计的主要部分无非是线程创建,参数传递,数据同步,结果返回以及线程销毁。这里主要就这几个部分做简单的说明,重点给出代码,方便快速上手。如果原创 2016-12-04 22:02:28 · 26346 阅读 · 1 评论