
C/C++
乔烨
IT小学生
展开
-
c++命名规范
前言:新入职公司,读了组内大佬的代码,发现之前自己的代码实在是糙,故整理一份命名规范一:文件的命名_em_voiceProcess.h _em_voiceProcess.cpp二:类相关的命名1:类名class _em_voiceProcess{};2:类的成员函数void getPrice(){}; //使用命令语气,不区分公私3:类的变量public: int ticket_number_; //单词以一个下划线相连(...原创 2020-08-22 16:52:06 · 358 阅读 · 0 评论 -
强大全面的C++框架和库推荐!
Jasonfrozen: C/C++的Jason解析生成器 Jansson:进行编解码和处理Jason数据的C语言库 jbson:C++14中构建和迭代BSON data,和Json 文档的库 JeayeSON:非常健全的C++ JSON库,只包含头文件 JSON++: C++ JSON 解析器 json-parser:用可移植的ANSI C编写的JSON解析器,占用内存非常少 json11:一个迷你的C++11 JSON库 jute:非常简单的C++ JSON解析器 ibj...转载 2020-08-13 11:18:35 · 1123 阅读 · 0 评论 -
typename
目录起因 typename的常见用法 typename的来源 一些关键概念 限定名和非限定名 依赖名和非依赖名 类作用域 引入typename的真实原因 一个例子 问题浮现 千呼万唤始出来 不同编译器对错误情况的处理 使用typename的规则 其它例子 再看常见用法 参考 写在结尾起因近日,看到这样一行代码:typedef ...转载 2019-10-14 14:08:56 · 408 阅读 · 0 评论 -
GET和POST两种基本请求方法的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻...转载 2018-11-07 13:03:59 · 239 阅读 · 1 评论 -
在linux环境下编译运行OpenCV程序的两种方法
原来以为在Ubuntu下安装好了OpenCV之后,自己写个简单的程序应该很容易吧,但是呢,就是为了编译一个简单的显示图片的程序我都快被弄崩溃了。 在谷歌和上StackOverFlow查看相关问题解答之后,我下面就介绍Command Line和CMake两种方式。 首先我先粘上我测试的代码吧,文件名为Test.c按 Ctrl+C 复制代码 按 Ctrl+C 复制代码 ...转载 2018-11-05 14:54:58 · 3741 阅读 · 0 评论 -
opencv2库基础函数的详解
今天我们来学习一个最简单的程序,即从文件读取图像并且创建窗口显示该图像。 目录 【imread】图像读取【namedWindow】创建window窗口【imshow】图像显示【imwrite】图像写入文件【waitKey】等待按键按下 前言 在说正文之前先简单介绍一下Mat类。Mat类是opencv2.0的主流图像类型,在之前opencv1.0使用的I...转载 2018-11-05 17:47:02 · 9731 阅读 · 0 评论 -
linux下二维码生成代码
安装qrencode 库sudo apt-get install qrencode #include <iostream>#include <cstdio>#include <cstdlib>#include <unistd.h>#include <string.h>using namespace std;in...原创 2018-11-08 15:48:54 · 779 阅读 · 0 评论 -
gcc/g++ 版本的更改
由于需要,需要将现在用的gcc-4.8改为5.4(这两个版本电脑都有)只想要重新链接下就行如果本机没有,可以参考下面博主的方法,当时降级也是参考的下面博主的方法————————————————————————————————————Matlab2014a支持的gcc和g++版本是4.7,而我的ubuntu16.04自带的gcc版本在5.0以上,所以有时候需要gcc的降级和升...原创 2018-11-21 10:44:58 · 10819 阅读 · 0 评论 -
使用opencv设置分辨率并保存在本地
#include <iostream>#include <cstdio>#include <opencv2/opencv.hpp>#include <unistd.h>using namespace std;using namespace cv;int main(){ VideoCapture cap; //定义视频对象 c...原创 2018-11-19 12:58:14 · 2836 阅读 · 0 评论 -
log4cplus 分级显示控制
原文:https://blog.youkuaiyun.com/liuchangyu23/article/details/4436364 前不久已经整理过一篇关于log4cplus介绍和使用基础的文章。这次来看看如何更好的使用log4cplus这个功能强大的日志系统吧。 ### 层次结构 ### 在log4cplus中,所有logger都通过一个层次化的结构(其实内部是has...转载 2018-12-14 16:27:56 · 1222 阅读 · 0 评论 -
Linux下串口通信详解(上)打开串口和串口初始化详解
原文:https://blog.youkuaiyun.com/specialshoot/article/details/50707965linux下串口通信主要有下面几个步骤Linux串口通信流程串口通信流程图下面我会一一介绍这几个步骤。1.打开串口代码(串口为ttyUSB0) //打开串口 int open_port(void) { int fd...转载 2018-12-26 17:49:03 · 861 阅读 · 0 评论 -
Linux下串口通信详解(下)读写串口及关闭串口
原文:https://blog.youkuaiyun.com/specialshoot/article/details/50709257 读串口读串口就是接收串口数据,通过read来实现。read函数原型: #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 参数说明:...转载 2018-12-26 17:50:11 · 1828 阅读 · 0 评论 -
c++日志管理库log4cplus的安装
下载log4cplus安装包:https://sourceforge.net/projects/log4cplus/解压:tar -xvf log4cplus-1.2.1.tar.xzcd log4cplus-1.2.1./ configure--prefix=/usr (安装在/usr 目录下)make -j8sudo make install/*保存在文件*/...原创 2019-02-26 11:27:06 · 855 阅读 · 1 评论 -
安装vim插件YouCompleteMe
仓库地址https://github.com/ycm-core/YouCompleteMe安装编译环境:sudo apt install build-essential cmakesudo apt install python-dev python3-devsudo apt install ctagssudo apt install gcc g++sudo apt instal...原创 2019-08-14 15:12:21 · 1069 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.youkuaiyun.com/haoel/article/details/2886makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,...转载 2018-11-09 14:41:09 · 186 阅读 · 0 评论 -
C语言对图片进行base64编码
本人最近在做基于arm平台上的Linux系统的人脸识别模块,其中要用到的一小部分就是图片的base64编码的实现,自己琢磨了一下写了一个程序,还挺好用的,可以参考一下。 #include <stdlib.h>#include <stdio.h>#include <string.h>#include <unistd.h>#incl...转载 2018-11-01 16:27:36 · 1852 阅读 · 0 评论 -
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); 所在的头文件为:#include <sys/time.h> 和#...转载 2018-10-29 16:09:14 · 509 阅读 · 0 评论 -
C++虚函数与纯虚函数用法与区别
1. 虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),而只含有虚函数的类(class)不能被称为抽象类(abstract class)。 2. 虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才可以使用,因为纯虚函数在基类(base c...转载 2018-09-11 17:56:53 · 142 阅读 · 0 评论 -
Linux 中/etc/profile、~/.bash_profile 等几个环境配置文件的执行过程
环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell。对于UNIX,可能是CShelll。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。下面通过几个实例...翻译 2018-09-05 17:52:35 · 190 阅读 · 0 评论 -
gettimeofday函数的简单使用
#include <iostream>#include <sys/time.h>#include <cstdio>#include <unistd.h>using namespace std;void fun(){ sleep(2);}int main(){ struct timeval tp; struct ti...原创 2018-09-06 16:46:28 · 2826 阅读 · 0 评论 -
使用gdb调试段错误
我们打算使用gdb去解决为什么下面的程序(文件为segfault.c)引起了段错误的问题。下面的这段程序是从用户那里读入一行文本字串然后显示在屏幕上。然而,如下当前的程序并不会如期执行...#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){ char *buf; ...转载 2018-09-12 11:05:54 · 971 阅读 · 0 评论 -
回调函数
版权声明:本文为博主原创文章,未经博主允许不得转载。 //cb.h 接口文档#include <iostream>#include <cstdio>struct A{ void (*pA)();//回调函数(函数指针)};void run(A *); //cb.cpp//接口的实现#include "cb...原创 2018-09-17 15:25:11 · 105 阅读 · 0 评论 -
使用cJSON解析JSON字符串
使用cJSON解析JSON字符串 一、为何选择cJSON 我们在使用JSON格式时,如果只是处理简单的协议,可以依据JSON格式,通过对字符串的操作来进行解析与创建。然而随着协议逐渐复杂起来,经常会遇到一些未考虑周全的地方,需要进一步的完善解析方法,此时,使用比较完善的JSON解析库的需求就提出来了。 基于方便引用的考虑,我们希望这个JSON解析库...转载 2018-09-10 15:19:48 · 3441 阅读 · 0 评论 -
linux下错误的捕获:errno和strerror的使用
linux下错误的捕获:errno和strerror的使用经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。在程序代码中包含 #include#include <stdio.h>#inclu...转载 2018-09-18 14:11:10 · 714 阅读 · 0 评论 -
(转)ALSA音频概念介绍 ---绝对权威
最近研究了一下linux上ALSA库的使用,下面总结一下:首先先了解一下音频的几个概念,上网一搜一堆介绍,可特么的大多数概念介绍都是模糊的.只想说一句我....................(1) 采样位数 : 也就是codec采样时一个点所占的bit数,通常有8,16,24bit等.(2) 通道数[channel] : 是mono还是stereo,对应的是1或者是2通道.(3)...转载 2018-09-19 17:02:28 · 246 阅读 · 0 评论 -
Scons安装配置以及JsonCpp编译使用说明,c++解析json的工具
Scons安装配置以及jsoncpp编译使用说明一、Scons配置Scons是Linux下的自动构建工具,需要python。注:以下内容以86测试环境举例。在我们的Linux主机中自己携带了python,无需安装。首先需要下载安装scons-2.1.0(http://sourceforge.net/projects/scons/files/scons/2.1.0/scons...转载 2018-10-25 15:39:38 · 1132 阅读 · 0 评论 -
fstream读写文件注意问题
类ofstream, ifstream 和fstream是文件操作的三个类,分别从ostream, istream 和iostream 中派生而来。通常读、写文件分别使用 ifstream、ofstream。1、 打开文件void open (const char * filename, openmode mode); 1filename 是一个字符串,代表要打开的文件名,mo...转载 2018-10-25 17:16:45 · 2783 阅读 · 0 评论 -
JsonCpp使用方法详解
JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读、编写、解析。jsoncpp是c++解析JSON串常用的解析库之一。jsoncpp中主要的类:Json::Value:可以表示所有支持的类型,如:int , double ,string , object, array等。其包含节点的类型判断(isNull,isBool,isInt,isA...转载 2018-10-26 09:57:19 · 948 阅读 · 0 评论 -
读取文件内容fstream.eof()和peek()
a.txt你好hello上午好中午好下午好晚上好再见 peek.cpp#include <iostream>#include <cstdio>#include <fstream>#include <string.h>#include <vector>using namespace std;...原创 2018-10-29 13:14:26 · 2878 阅读 · 0 评论 -
C++中const、volatile、mutable的用法 (及其详细)
const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const int nValue; //nValue是co...转载 2018-09-04 17:02:30 · 128 阅读 · 0 评论