
c++编程
文章平均质量分 67
BetaGarf
这个作者很懒,什么都没留下…
展开
-
NUMA机制
NUMA一、NUMA二、特点三、缺点一、NUMA非一致内存访问(Non-Uniform Aemory Access,NUMA)是一种多核CPU扩展技术。利用NUMA技术,可以将成百上千个CPU组合在服务器中。访问本地内存(Local Access)速度快访问远端内存(Remote Access)速度慢二、特点NUMA服务器的基本特征是具有多个CPU模块,每个CPU模块由多个CPU(如4个)组成,并且具有独立的本地内存、I/O槽口等。由于其节点之间可以通过互联模块(如称为Crossbar Sw原创 2021-04-08 10:35:13 · 432 阅读 · 0 评论 -
【实习秋招篇之C++面经】
C++必背面经一、 C++的理解,C和C++的区别。二、 Struct和class的区别三、 Strlen和sizeof的区别四、 面向对象的理解五、 C++内存分布六、 智能指针七、 构造函数八、 默认构造函数九、 拷贝构造函数十、 析构函数十一、 delete与析构函数的区别十二、 delete与delete[]的区别十三、 多态与虚函数十四、 虚函数与纯虚函数的区别十五、 虚继承十六、 this指针十七、 关键字extern十八、 关键字static十九、 关键字volatile二十、 内存对齐二十一原创 2020-09-01 09:37:09 · 2227 阅读 · 1 评论 -
LNK1169解决重定义错误
LNK1169解决重定义错误原创 2019-11-21 17:14:53 · 570 阅读 · 0 评论 -
【C++拾遗之八】预编译
预编译一、预编译二、头文件的作用三、重定义错误一、预编译C++的预编译(预处理),是指在C++程序源代码被编译之前,由预处理器对C++程序源代码进行的处理。这个过程并不对程序的源代码进行解析,但它把源代码分割或处理成为特定的符号用来支持宏调用。程序的编译过程可以分为预处理、编译、汇编三部分,其中预处理是首先执行的过程,预处理过程扫描程序源代码,对其进行初步的转换,产生新的源代码提供给编译器。...原创 2019-11-21 17:13:07 · 627 阅读 · 0 评论 -
【C++解决问题之栈】Stack around the variable 'tilename' was corrupted
Stack error一、栈环境被破坏二、解决办法一、栈环境被破坏二、解决办法数组越界检查数组大小,循环变量是否越界。sprintf()会造成越界,在释放内存,做delete时会报错误,使用的时候要注意。char *tmp = new char[100];memset(tmp,'/0',100);//使用sprintf(), 将char *data 拷贝到tmp, data ...原创 2019-11-19 15:27:25 · 687 阅读 · 0 评论 -
opencv之Mat详解
文章目录使用[cv::Mat::imread()](https://docs.opencv.org/master/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56)加载图像使用[cv::Mat::imwrite()](https://docs.opencv.org/master/d4/da8/group__imgcode...原创 2019-11-15 20:12:42 · 382 阅读 · 0 评论 -
流媒体传输协议之概述
流媒体网络协议一、流媒体二、流媒体协议一、流媒体媒体指的是承载信息的载体,而流媒体就是把媒体文件流化、串行化,已达到分段分发、分段播放的目的。流媒体的概念如下:流媒体(Streaming media)是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网络上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。流媒体...原创 2019-11-12 09:29:30 · 972 阅读 · 0 评论 -
【C++拾遗之八】#pragmaonce与#ifndef的用法总结
宏定义一、两种宏定义的功能二、两种宏定义的用法三、两种宏定义的区别一、两种宏定义的功能#ifndef 和 #pragma once都是C/C++中的两种宏定义。它们的作用是为了避免同一个头文件被多次包含(include)。二、两种宏定义的用法#ifndef#ifndef EXAMPLE_H_#define EXAMPLE_H_... ...// 声明、定义语句#endif...原创 2019-11-08 16:49:12 · 353 阅读 · 0 评论 -
【C++异常处理机制】
文章目录一、异常处理机制1、异常:2、异常处理:3、异常可能性:4、传统的异常处理方法:二、C++异常处理机制:三、C++异常处理的实现1、try2、throw3、catch四、标准程序库异常的用法五、异常处理中的构造与析构六、小结一、异常处理机制1、异常:程序执行时遇到的任何错误或意外行为。2、异常处理:异常处理就是当程序出现这些错误后,给与恰当的处理,为程序提供退出的安全通道。...原创 2019-11-03 22:44:26 · 922 阅读 · 0 评论 -
【C++拾遗之七】YUV视频下采样
文章目录1、下采样(subsample or downsample)2、源码1、下采样(subsample or downsample)图像下采样原理:原始图像的分辨率为WxH,对其进行n倍下采样得到(W/n)x(H/n)分辨率的图像,其中n应该是M和N的公约数才行。n倍下采样,即每n个像素抽取一个像素。将YUV视频分为亮度分量(Y)和色度分量(U、V),对视频的每一帧都进行n采样,就可以实...原创 2019-11-02 21:53:35 · 1308 阅读 · 1 评论 -
【C++拾遗之四】getline函数
文章目录1、getline(std::ifstream* fin, std::string str)函数1、getline(std::ifstream* fin, std::string str)函数函数功能:逐行读取字符参数解析:参数1:文件描述符参数2:字符串,存放读取的一行字符返回值:返回读取的字符数char cfg_path[] = "encode.cfg";std::if...原创 2019-11-02 21:11:14 · 1086 阅读 · 0 评论 -
【C++拾遗之六】解析配置文件
文章目录1、ifstream 打开文件流2、getline()逐行读取配置文件3、解析参数4、源码1、ifstream 打开文件流char cfg_path[] = "encode.cfg";std::ifstream fin(cfg_path, std::ios::in);if (!fin) { printf("Cloud open file %s", cfg_path); retu...原创 2019-11-02 20:57:36 · 393 阅读 · 0 评论 -
【C++内存管理之四】动态内存管理
1、内存耗尽怎么办1、判断指针是否为NULL,并用retuen语句终止。2、判断指针是否为NULL,并用exit(1)函数终止。3、设置new和malloc异常处理函数。_set_new_hander函数为异常处理函数2、有了malloc/free为什么还要new/delete1、malloc/free是c/c++的标准库函数适合内部数据类型,无法满足动态对象的要求。因为创建对象时需要...原创 2019-10-25 08:37:34 · 527 阅读 · 0 评论 -
【FFmpeg学习笔记一】FFmpeg简介
文章目录一、FFmpeg简介二、FFmpeg函数库一、FFmpeg简介FFmpeg是一款自由软件,核心功能就是音视频编解码,其中的“FF”指的是“Fast Forward(快速前进)。FFmpeg作为MPlayer姊妹项目,在2000年由法布里斯·贝拉发起的。FFmpeg强大的编解码功能使得它应用广泛:1、FFMPEG作为内核视频播放器:Mplayer,ffplay,射手播放器,暴风影音,......原创 2019-10-24 23:15:38 · 714 阅读 · 1 评论 -
【C++内存管理之三野指针、内存泄漏、内存覆盖及应对策略
文章目录1、内存分配失败2、内存没有初始化3、内存操作越界4、内存没有释放5、内存释放后继续使用发生内存错误时间非常麻烦的事情。编译器不能发现这些错误,只能在程序运行时才能捕捉到。1、内存分配失败内存分配失败却使用了它指针p为函数参数,在函数入口处进行检查:assert(p != NULL);new或malloc申请内存进行判断:if(p == NULL)2、内存没有初始化3...原创 2019-10-22 23:12:31 · 1347 阅读 · 0 评论 -
【C++内存管理之一】内存结构简介
文章目录一、内存结构简介1、内存分配方式1、栈2、堆3、自由存储去4、全局区(静态区)5、常量区2、堆栈的区别1、举个栗子2、区别一、内存结构简介C++的内存结构,主要分为五个区域:栈区、堆区、全局区(静态区)、常量区、代码区。扩展链接堆栈大小设置1、内存分配方式1、栈1、由编译器和操作系统管理;2、函数执行开始时,函数内的局部变量存储在栈中;函数执行结束时,这些存储单元自动被释...原创 2019-10-22 19:04:18 · 4130 阅读 · 2 评论 -
【C++拾遗之五】C++基础数据类型
文章目录1、基本数据类型2、扩展数据类型(uint8_t\uint_16_t\uint32_t\uint64_t)1、基本数据类型名称字节长度取值范围bool1false、truechar1-128~127unsigned char10~255short2unsigned short2int4unsigned i...原创 2019-10-22 15:12:08 · 205 阅读 · 0 评论 -
解决应用程序无法正常启动(0xc000007b)问题
文章目录一、问题提示二、解决办法一、问题提示二、解决办法1、VS开发工具需要调用的dll与实际的dll不一致.【后面以libwinpthread-1.dll为例说明】2、找到可能出问题的dll。//出现加载和卸载的dll就很有可能位数不一致已卸载“F:\xxx\libwinpthread-1.dll”已卸载“F:\xxx\libwinpthread-1.dll”3、判断dll是...原创 2019-10-21 17:17:02 · 1567 阅读 · 0 评论 -
判断dll是32还是64位
文章目录1、打开VS的开发者命令提示符(Developer Commond Prompt for VS XX)2、运行命令 >dumpbin /headers XXX.dll1、打开VS的开发者命令提示符(Developer Commond Prompt for VS XX)2、运行命令 >dumpbin /headers XXX.dlldumpbin /headers F:...原创 2019-10-21 17:14:33 · 475 阅读 · 0 评论 -
【C++拾遗之二】fseek、ftell函数读取文件
文章目录1、fseek(FILE *fp, long offset, int fromwhere)函数2、ftell(fp)函数3、fread(void* buffer,int size,int counts,FILE* fp)函数1、fseek(FILE *fp, long offset, int fromwhere)函数函数功能:移动文件指针位置参数解析:参数1:文件指针参数2:偏移...原创 2019-10-16 21:45:44 · 900 阅读 · 0 评论 -
【C++拾遗之一】常量指针、指针常量、void指针和空指针
文章目录1、常量指针与指针常量2、void指针与空指针1、常量指针与指针常量常量指针:指向常量的指针。指针是一个变量,指针指向的内容是一个常量。const int* p;//指针可变,指针指向的内容不可变,即p可变,*p不可变。指针常量:指针是一个常量指针是一个常量,指针指向的内容是一个变量。int* const p;//指针不可变,指针指向的内容不可变,即p不可变,*p可变...原创 2019-10-16 20:23:27 · 276 阅读 · 0 评论 -
vs2017+dlib+人脸检测
文章目录1、[dlib-19.17下载](http://dlib.net/)2、opencv配置3、cmake编译1、cmake编译2、vs2017编译生成release和debug库4、vs2017配置1、vs2017配置成Release2、opencv配置3、包含目录、库目录和附加依赖项的配置1、debug模式2、release模式3、dlib配置5、实例1、摄像头视频实时检测人脸1、dli...原创 2019-10-12 10:06:10 · 889 阅读 · 0 评论 -
sstream之安全输入输出
文章目录1、sstream库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。注意,使用string对象来代替字符数组。2、日志文件1、sstream库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、...原创 2019-09-19 19:25:48 · 368 阅读 · 0 评论 -
CUDA加速之0xC0000005: 读取位置 0x0000A29FBED6A00 时发生访问冲突
地址访问冲突解决办法原创 2019-09-24 11:28:16 · 1543 阅读 · 0 评论 -
【C++拾遗之三】C++回顾
程序开发要求要求两点:一是高效的数据描述;二是步骤合理、可用程序实现的算法设计。原创 2019-09-25 10:05:50 · 209 阅读 · 0 评论 -
人脸识别系统开发(一)概述
文章目录一、系统简介二、环境部署三、算法设计四、实验效果一、系统简介人脸识别技术作为计算机视觉和生物识别领域最为热门的研究主题之一,已经广泛应用到公共安全、人事考勤、金融交易、互联网等领域。本文基于深度学习框架实现了一套人脸识别系统,该系统由人脸检测、人脸对齐、特征提取和人脸匹配四个模块组成。测试结果表明,当输入分辨率为640X480的视频时,人脸识别速度达到50fps,准确率达到90%以上。...原创 2019-10-08 14:50:17 · 3642 阅读 · 0 评论 -
人脸识别系统开发(二)opencv实时捕捉视频
文章目录1、编译opencv2、测试用例1、编译opencvvs2017编译opencv参考教程OpenCV3.4.2官网下载2、测试用例#include <iostream>#include <opencv2/opencv.hpp>int main(int argc, char* argv[]){ //opencv捕获摄像头 cv::VideoCap...原创 2019-10-08 15:27:46 · 804 阅读 · 0 评论 -
opencv之cvWaitKey()函数详解
文章目录int cvWaitKey(int k)函数1、参数2、返回值int cvWaitKey(int k)函数int cvWaitKey(int k)函数的功能是刷新图像,其中参数k单位是毫秒,表示刷新频率。1、参数1、k = 0:无限延时cvWaitKey(0);//无限等待2、k > 0:延时k毫秒cvWaitKey(30);//每个30ms刷新一次显示函数和刷新...原创 2019-10-08 20:14:32 · 22061 阅读 · 0 评论 -
静态成员变量只能在类外初始化
文章目录静态成员变量是类对象所共有的成员变量,不应该依赖于实例对象的创建。类外定义静态成员变量就是一种很好的方法,保证只被初始化一次。static const int可以在类里面初始化,是因为它既然是const的,那程序就不会再去试图初始化了。1、避免重复初始化2、满足static语义#include <iostream.h> class CDummy { p...原创 2019-10-09 15:33:30 · 2060 阅读 · 0 评论 -
人脸识别系统开发(四)人脸识别
文章目录1、头文件路径2、库文件路径3、依赖项和动态库4、预处理器1、头文件路径..\include2、库文件路径..\lib3、依赖项和动态库opencv_world342.liblibfacedetect-x64.libdlib19.17.0_release_64bit_msvc1916.libcublas.libcuda.libcudadevrt.libcudar...原创 2019-10-09 17:42:21 · 1489 阅读 · 0 评论 -
Windows计时器函数
文章目录1、标准c/c++函数(windows/Linux)2、windows系统提供的API接口1、标准c/c++函数(windows/Linux)1、clock()函数,毫秒精度#include <time.h>clock_t time_begin= clock();Sleep(1000);clock_t time_end = clock();std::cout &...原创 2019-09-19 16:15:04 · 1210 阅读 · 0 评论