
C++工程
文章平均质量分 59
位面元哥
三十功名尘与土 ,八千里路云和月
展开
-
nohup运行程序竟然会使CPU飙到200%
果然有个while 循环中有度操作,在前面加上sleep就解决了。原创 2023-04-26 22:22:41 · 692 阅读 · 1 评论 -
C++工程,cmake,cmake生成so包并调用
文章目录1,目录结构2,代码清单2.1,utils.h2.2,utils.cpp2.3,main.cpp2.4,顶层CMakeLists.txt2.5,so包(module)CMakeLists.txt2.6,工程(process)CMakeLists.txt3,编译运行1,目录结构2,代码清单2.1,utils.h#ifndef __UTILS_H__#define __...原创 2020-03-14 21:04:48 · 4820 阅读 · 0 评论 -
C++工程,C++设计模式-享元模式
文章目录1,运行结果  {}; Point(int a,...原创 2020-02-24 16:39:45 · 1123 阅读 · 0 评论 -
C++工程,枚举类输出运算符重载,elaborated-type-specifier for a scoped enum must not use the ‘class’ keyword
文章目录1,原始代码2,运行没问题,但编译会有警告:elaborated-type-specifier for a scoped enum must not use the ‘class’ keyword3,修改1,原始代码#include <iostream>enum class TreeType : int { PINE = 1, CYPRESS = 2...原创 2020-02-24 16:10:12 · 1421 阅读 · 0 评论 -
C++工程,C++设计模式-代理模式
c++设计模式代理模式:为其它对象提供一种代理以控制这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介作用。优点:职责清晰。真实的角色只负责实现实际的业务逻辑,不用关心其它非本职责的事务,通过后期的代理完成具体的任务。这样代码会简洁清晰。代理对象可以在客户端和目标对象之间起到中介的作用,这样就保护了目标对象。扩展性好。...原创 2020-02-20 14:25:20 · 219 阅读 · 0 评论 -
multiple definition of `main'
文章目录1,目录结构2,报错内容3,cmake4,错误原因5,修改方案一5,修改方案二1,目录结构2,报错内容3,cmakecmake_minimum_required(VERSION 3.5)project(app)if(CMAKE_COMPILER_IS_GNUCC) message("COMPILER IS GNUCC") ADD_DEFINI...原创 2020-02-20 14:03:43 · 12366 阅读 · 2 评论 -
C++工程,C++设计模式-组合模式。c++输出运算符重载
文章目录1,运行效果2,代码示意c++设计模式组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得客户端对单个对象和组合对象的使用具有一直性。既然讲到以树形结构表示“部分-整体”,那可以将组合模式想象成一根大树,将大树分成树枝和树叶两部分,树枝上可以再长树枝,也可以长树叶,树叶上则不能再长出别的东西。以下情况可以考虑使用组合模式:希望表示对象的部分-整体层次结构。...原创 2020-02-19 00:13:02 · 180 阅读 · 0 评论 -
C++工程,C++设计模式-外观模式。c++递增操作符重载
文章目录1,运行效果2,代码示例c++设计模式外观模式:为子系统中的一组接口定义一个一致的界面;外观模式提供一个高层的接口,这个接口使得这一子系统更加容易被使用;对于复杂的系统,系统为客户端提供一个简单的接口,把负责的实现过程封装起来,客户端不需要连接系统内部的细节。以下情形建议考虑外观模式:设计初期阶段,应有意识的将不同层分离,层与层之间建立外观模式。开发阶段,子系统越来越复杂,使用...原创 2020-02-18 18:48:03 · 210 阅读 · 2 评论 -
C++工程,C++设计模式-建造者模式
文章目录1,运行效果2,代码示例c++设计模式建造者模式:将复杂对象的构建和其表示分离,使得相同的构建过程可以产生不同的表示。以下情形可以考虑使用建造者模式:对象的创建复杂,但是其各个部分的子对象创建算法一定。需求变化大,构造复杂对象的子对象经常变化,但将其组合在一起的算法相对稳定。建造者模式的优点:将对象的创建和表示分离,客户端不需要了解具体的构建细节。增加新的产品对象时,...原创 2020-02-14 14:34:08 · 210 阅读 · 0 评论 -
C++工程,C++设计模式-模板模式,c++11新特性(委托构造,继承构造),多线程互斥,继承控制(override和final)
文章目录1,运行结果2,代码示例c++设计模式模板模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。当多个类有相同的方法,并且逻辑相同,只是细节上有差异时,可以考虑使用模板模式。具体的实现上可以将相同的核心算法设计为模板方法,具体的实现细节有子类实现。缺点:每一个不同的实现都需要一个子类来实现,导致类的个数增...原创 2020-02-13 22:34:09 · 203 阅读 · 0 评论 -
C++工程,C++设计模式-原型模式,原型模式和拷贝构造函数的区别
文章目录1,运行效果2,代码示例3,原型模式和拷贝构造函数的区别c++常用设计模式设计模式之原型模式原型模式和建造者模式、工厂方法模式一样,都属于创建型模式的一种。简单的来说,我们使用原型模式,就是为了创建对象。不过,适合原型模式的最好选择如下:1.当我们的对象类型不是开始就能确定的,而这个类型是在运行期确定的话,那么我们通过这个类型的对象克隆出一个新的对象比较容易一些;2.有的时候,我...原创 2020-02-13 14:16:15 · 1015 阅读 · 0 评论 -
C++工程,C++设计模式-单例模式
文章目录1,代码 main.cpp2,编译c++设计模式单例模式顾名思义,保证一个类仅可以有一个实例化对象,并且提供一个可以访问它的全局接口。实现单例模式必须注意一下几点:单例类只能由一个实例化对象。单例类必须自己提供一个实例化对象。单例类必须提供一个可以访问唯一实例化对象的接口。1,代码 main.cpp#include <iostream>#include &l...原创 2020-02-12 19:54:13 · 182 阅读 · 0 评论 -
C++工程,C++设计模式-适配器模式
文章目录1,interface.h2,multi_camera_keyfram.h2,key_fram.cpp3,使用,main.cppc++设计模式适配器模式可以将一个类的接口转换成客户端希望的另一个接口,使得原来由于接口不兼容而不能在一起工作的那些类可以在一起工作。通俗的讲就是当我们已经有了一些类,而这些类不能满足新的需求,此时就可以考虑是否能将现有的类适配成可以满足新需求的类。适配器类需...原创 2020-02-12 13:02:53 · 168 阅读 · 0 评论 -
C++工程,C++设计模式-策略模式
文章目录1,data_queue.h2,my_queue.h2,my_zmq.h3,data_queue.cpp4,main.cpp策略模式是指定义一系列的算法,把它们单独封装起来,并且使它们可以互相替换,使得算法可以独立于使用它的客户端而变化,也是说这些算法所完成的功能类型是一样的,对外接口也是一样的,只是不同的策略为引起环境角色环境角色表现出不同的行为。相比于使用大量的if…else,使用...原创 2020-02-11 20:12:40 · 129 阅读 · 0 评论 -
c++工程,zmq
文章目录1,void *zmq_ctx_new ();2,void *zmq_socket (void *context, int type);2.1,type2.1.1,请求-回复模式2.1.2,发布-订阅模式2.1.3,管道模式2.1.4,独立对模式2.2,返回值3,int zmq_setsockopt (void *socket, int option_name, const void *o...原创 2019-11-12 16:27:47 · 2415 阅读 · 0 评论 -
C++,类的前置声明,c++继承,c++子类访问父类成员变量,c++头文件相互包含
假设声明两个类A和B,如果需要在A.h中定义B类对象,B b_; 势必要包含# include “B.h”,而B类中需要定义A类对象A a_; 也要包含B.h,但是相互包含是不允许的,称为环形引用,这时候就用到了前向声明文章目录1,a.h 类A中实例化类B的对象2,a.cpp 可以调用类B对象的方法3,b.h 类B中不能实例化类A的对象4,b.cpp 中包含a.h,这样就可以使用类A对象中的方法...原创 2019-11-10 22:53:32 · 2762 阅读 · 0 评论 -
C++工程,获取Cpu、内存使用率
文章目录1,使用2,函数实现1,使用int main() { while(pipeline_run_flag) { system("top -s -b -n 1 |grep -E \"Cpu|KiB Mem |KiB Swap\" > log/sys_state.txt"); write_system_state_to_log("...原创 2019-06-25 18:48:56 · 2121 阅读 · 0 评论 -
C++工程,protobuf初识,读prototxt文件,下载安装,消息结构体详解,编译命令
文章目录1,下载安装包2,解压安装2.1,查看版本3,使用3.1,定义数据结构体---编写config.proto3.1.1,一个字段由以下部分组成:3.1.1.1,指定字段规则3.1.1.2,指定字段类型3.1.1.3,分配标识号3.1.1.4,添加注释3.1.2,从.proto文件生成了什么?3.1.3,枚举3.2,使用protoc编译器进行编译3.2.1,导出C++包3.2.2,导出java...原创 2019-07-04 11:04:06 · 1458 阅读 · 0 评论 -
C++工程,protobuf工程应用,定义消息结构体proto文件,编辑prototxt文件,生成访问类,protobuf API借口测试
文章目录1,工程1.1,消息结构体--- addressbook.proto1.2,文本格式prototxt 文件 --- txt.prototxt1.3,操作接口定义 --- protobuf.h1.4,操作接口实现及测试代码 --- protobuf.cpp1.5,Makefile2,编译测试2.1,生成访问类2.2,编译工程,生成可执行文件2.3,测试1,工程1.1,消息结构体—...原创 2019-07-04 11:29:00 · 1449 阅读 · 0 评论 -
C++工程,C++设计模式-工厂模式。c++实现自动注册工厂,报错:multiple definition of `reg_msg_MockModule_'
文章目录1,工程目录2,测试效果3,auto_factory.h --- 自动注册工厂代码4,base_message.h --- 注册类基类,及工厂代码接口5,message.h --- 要注册的N个类6,main.cpp7,Makefile1,工程目录2,测试效果3,auto_factory.h — 自动注册工厂代码#pragma once#include <f...原创 2019-07-10 14:12:01 · 744 阅读 · 0 评论 -
C++工程,protobuf工程应用(多路径下的编译),Makefile,CMakeList.txt,定义消息结构体proto文件,编辑prototxt文件,生成访问类,测试
文章目录1,工程1.1,定义消息结构体proto文件 --- addressbook.proto1.2,文本格式prototxt 文件 --- txt.prototxt1.3,protobuf操作接口1.3.1,定义 --- protobuf.h1.3.2,操作接口实现及测试代码 --- protobuf_implementation.h1.4,Makefile1.5,CMakeList.txt2...原创 2019-07-06 22:46:02 · 1563 阅读 · 0 评论 -
C++工程,CMakelist.txt,CMake添加所有头文件,CMake递归添加头文件,CMake查找所有源文件
CMakelist.txtcmake_minimum_required(VERSION 3.5) project(main) #MESSAGE(FATAL_ERROR "${CMAKE_BUILD_TYPE}")if(CMAKE_COMPILER_IS_GNUCC) message("COMPILER IS...原创 2019-07-24 11:36:45 · 16890 阅读 · 2 评论 -
C++工程,读取目录下所有图片,画矩形框cv::rectangle(),添加文本cv::putText(),画半透明框cv::fillPoly()、cv::addWeighted(),保存视频
cv::String pattern = "detect/picture/*.jpg"; std::vector<std::string> files; std::vector<cv::Mat> imgs; cv::glob(pattern, files, false); size_t counter = files.size(); ...原创 2019-08-01 09:07:36 · 950 阅读 · 0 评论 -
C++工程,rapidjson字符串为空或乱码,rapidjson超长字符串,rapidjson超大数据json串包不住
使用rapidjson时出现以上问题,1.不是完整的内容,2.多次转义\bid.AddMember(“adm”, rapidjson::StringRef(html_snippet.c_str(),html_snippet.size()), allocator);stringRef(html_snippet.c_str())一开始以为可能可能是字符串结束标志问题,这种方式会调动C的strl...原创 2019-08-12 15:51:25 · 4249 阅读 · 0 评论 -
C++工程,c++递归读取目录下的所有文件,c++判断一个路径是目录还是文件,c++向文件写入一行,c++从文件读取一行,字符串分割strtok()
#include <iostream>#include <sstream>#include <stdio.h>#include <fstream>#include <dirent.h>#include <sys/stat.h>void read_path(std::string dir_path, std::of...原创 2019-09-04 22:04:31 · 571 阅读 · 0 评论 -
C++工程,glog
文章目录1,使用1.1,使用步骤1.1.1,包含头文件1.1.2,使对glog的初始化生效1.1.3,使用glog1.2,.cpp文件1.3,.h文件2,自定义修改2.1,增加日志按天输出2.1.1,进入glog安装目录glog-0.3.32.1.2,编译https://www.cnblogs.com/tianyajuanke/archive/2013/02/22/2921850.html1...原创 2019-06-25 19:48:24 · 806 阅读 · 0 评论