C++
五岳凌峰
这个作者很懒,什么都没留下…
展开
-
C++ Json文件读写示例
#include "json11.hpp"// write json datajson11::Json::array json_results;for(int i = 0; i < frames; i++) { // process // .... json11::Json::array frame_result; json11::Json::object frame_info; frame_info["frame"] = frame; ..原创 2021-06-20 16:42:43 · 801 阅读 · 0 评论 -
std::condition_variable使用
背景:主线程定义了模块a对象,然后调用模块a的函数A,A负责填充buff。模块a内部开启一个子线程,从buff拿数据处理。如果buff不为空,则进行后处理,为空返回。主线程代码示例Class Dabaicai {public: Dabaicai(); ~Dabaicai(); bool InputData(const std::shared_ptr<DataVec> &obs_vec) { if (obs_vec != nullptr &&原创 2021-01-29 11:38:44 · 258 阅读 · 0 评论 -
c/c++ 创建多级目录
转自https://www.cnblogs.com/charlee44/p/10805055.html。若侵权,告知即删。C运行时库提供的创建目录的函数_mkdir(),在上级目录不存在时会创建失败。所以自己实现了一下创建多级目录,无论上级目录是否存在。#include<io.h>#include<direct.h>std::string GetPathDir(std::string filePath);void CreateMultiLevel(std::stri转载 2020-11-27 10:51:37 · 1063 阅读 · 0 评论 -
C++实现聚类算法DBSCAN
DBSCAN聚类算法进行了C++的实现。时间复杂度O(n^2),主要花在算每个点领域内的点上。数据点类型描述如下:#include <vector> using namespace std;const int DIME_NUM=2; //数据维度为2,全局常量//数据点类型class DataPoint{private: unsigned long dpID; //数据点ID double dimension转载 2020-09-17 14:41:10 · 2680 阅读 · 1 评论 -
二值图像连通域标记
转自https://www.cnblogs.com/ronny/p/img_aly_01.html。侵删。记录下基于行程的标记算法。一、前言二值图像,顾名思义就是图像的亮度值只有两个状态:黑(0)和白(255)。二值图像在图像分析与识别中有着举足轻重的地位,因为其模式简单,对像素在空间上的关系有着极强的表现力。在实际应用中,很多图像的分析最终都转换为二值图像的分析,比如:医学图像分析、前景...转载 2020-03-19 14:11:18 · 743 阅读 · 0 评论 -
C++之const修饰符(const修饰指针)
转自https://www.jianshu.com/p/3a475dfbe469。侵删。const修饰指针无非三种情况:(1) const char * p(2) char const * p(3) char * const p(1) const char * p //p指向的字符不能通过p被改变int main(){ char a = 'a'; const ...转载 2020-01-02 15:52:26 · 264 阅读 · 0 评论 -
类中静态成员变量 && 无法解析的外部符号
【1】如下代码及编译错误如标题,不做赘述。【2】原因及解决方案原因:之所以报如上编译错误,因为静态成员变量未初始化。解决方案:类中静态成员需要在类外进行初始化。其格式为:类型类名::静态成员变量名=默认值;初始化后,再编译。结果如下图:...转载 2019-12-13 19:23:23 · 1323 阅读 · 0 评论 -
C++11:强枚举类型enum
转自https://blog.csdn.net/caychen/article/details/79681806。感谢博主辛苦整理,侵删。#include <iostream>namespace T //命名空间T{ enum Color{ Black, Gray, Green };}namespace S{ enum Size{ Small =...转载 2019-12-13 16:03:06 · 286 阅读 · 0 评论 -
包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解
转自https://blog.csdn.net/u012043391/article/details/54972127。感谢作者辛苦整理,侵删。原文+对dll库的引用做了补充,如下:VS项目中的包含目录、库目录、附加包含目录、附加库目录、附加依赖项均在"项目->属性->配置属性"下进行配置,具体说明如下:VC++目录:包含目录:寻找#include<xxx...转载 2019-05-20 11:08:55 · 656 阅读 · 0 评论 -
设计模式-观察者模式(C++实现)
转自https://www.cnblogs.com/suzhou/p/dp16obsvr.html,谢谢作者整理,若侵权告知即删觉得作者写的例子很不错,正文转载如下:意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。动机:将一个系统设计成一系列相互协作的类有一个常见的副作用:需要维护相关对象之间的一致性。观察者模式...转载 2019-03-27 16:36:17 · 178 阅读 · 0 评论 -
C++之编码问题(ASCII,Unicode,本地编码)
转自http://www.cnblogs.com/qzhforthelife/p/3228933.html。谢谢作者整理。若侵权告知即删。本篇文章试图回答的问题:1、char* pStr="我aa";这句代码执行后,pStr指向的内存区域中存储的字节到底是根据什么码表而来的呢?该字符串占几个字节?2、将一个VS2010的Windows程序设置了“使用Unicode字符集”到底意味着什么...转载 2019-03-27 15:14:50 · 1341 阅读 · 0 评论 -
写INI配置文件
配置文件经常采用ini文件,window有相关API。WritePrivateProfileString用于写文件BOOL WritePrivateProfileString( LPCTSTR lpAppName, // 字段名,如果字段名不存在,会被创建,可以创建多个字段名 LPCTSTR lpKeyName, // 键名,属于lpAppName,不存在会被创建;一个字段名...原创 2018-10-26 17:42:18 · 464 阅读 · 0 评论 -
_access函数
该函数用于判断文件是否可读/可写/是否存在。int _access( const char *path, //文件路径 int mode //文件的权限类型,00 表示存在,02表示只能写,04表示只读,06表示可读可写);该函数返回值:返回0,表示文件具有所查询的权限类型;返回-1,表示文件没有所查询的权限类型或者文件不存在示例代码 //构造文件路径,...原创 2018-10-26 17:58:13 · 884 阅读 · 0 评论 -
QT获取本机IP
环境:win7_64 + VS2012 +Qt5利用QT获取本机IP地址,示例代码如下 bool bFindLocalIP = false; QString qsLocalIP; //局域网网段192.168.0.0/16,表示192.168.0~255.0~255.可以根据实际情况设置 QPair<QHostAddress,int> rangeIp...原创 2018-11-07 13:54:20 · 578 阅读 · 0 评论 -
CFile/CStdioFile打开文件的share属性
程序中调用CFile/CStdioFile打开文件准备写文件,同时手动打开该文件,程序崩溃。跟代码发现,CFile/CStdioFile打开文件失败,指针无效,程序崩溃。实例一void MyClass::WriteInFile(CString filePath,int *nLength){ CStdioFile file; //增加CFile::shareDenyWrite模...原创 2018-12-20 17:58:47 · 1002 阅读 · 0 评论 -
程序开机启动,生成的txt不在程序路径下
环境:win7_64 + VS2012程序test.exe,设置为开机启动。test.exe中会生成length.txt,xxx.log文件,但是仅指定了length.txt,xxx.log生成的相对路径。假设test.exe所在目录,C:\Program Files (x86)\Test\test.exe,以生成length.txt代码片段举例说明。 CString file...原创 2018-12-21 15:11:55 · 291 阅读 · 0 评论 -
Cmake知识----编写CMakeLists.txt文件编译C/C++程序
转自https://www.cnblogs.com/cv-pr/p/6206921.html。谢谢作者整理。若侵权告知即删Cmake知识----编写CMakeLists.txt文件编译C/C++程序1.CMake编译原理CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists...转载 2018-12-28 16:28:47 · 185 阅读 · 0 评论 -
CMake,make,CMakeLists.txt,CMakeFiles之间的关系
参考https://www.zhihu.com/question/36609459对于一个只在windows界混的菜鸟程序员,平常用Visual Studio(号称宇宙最强IDE),就能实现新建工程,编写*.cpp,*.h,编译(即build,这里的编译实际包括了编译,汇编,链接等等,见下面截图)过程神马的都帮你弄好了,按个快捷键(ctrl +shift+B或者F7,好像还可以自定义)...原创 2018-12-29 14:46:26 · 4927 阅读 · 2 评论 -
使用cmake自动构建工程
转自http://www.cnblogs.com/chengxuyuancc/p/5347646.html。真的很好,谢谢作者辛苦整理。若侵权告知即删。 公司引擎是用cmake根据目标平台来构建工程的,刚接触的时候深深体会到cmake的方便:如果目标平台是windows,它可以帮你自动构建出vs工程;如果是安卓,自动构建出eclipse工程,如果是IOS,自动构建出xcode工程。想想以前...转载 2018-12-29 16:44:46 · 207 阅读 · 0 评论 -
获得可执行程序EXE的绝对路径
环境:win7_64bit + VS2012获得当前可执行程序的绝对路径 char cExecPath[MAX_PATH]; char* pszPathofFile; //GetModuleFileName获得当前可执行程序绝对路径\\xx\\xx\\xx.exe if(GetModuleFileName( 0, cExecPath, sizeof(cExecPath))...原创 2018-10-26 16:30:56 · 682 阅读 · 0 评论