
C++应用笔记
该-昵称已被占用
字节跳动Lark内推,请勾搭
展开
-
C++单例模式
唯一对象类中建立一个对象,并且在获取实例时返回该对象class CSingleton { private: CSingleton() { } static CSingleton *m_pInstance; public: static CSingleton * GetInstance() {原创 2016-10-15 13:08:18 · 308 阅读 · 0 评论 -
MFC被坑记录——”无法找到所需的资源“
写了一个小程序用来处理数据,用到了MFC框架来显示界面。当程序运行时间较短时没有问题,当程序长时间运行时出现了莫名其妙的崩溃。直到有一次弹出了对话框提示“无法找到所需的资源”。 同时之前有注意到程序运行到GetDC()处停止过,再结合这篇文章告诉你GetDC()没有释放造成的后果(https://www.cnblogs.com/fredliu/p/4932177.html)找到了问...原创 2018-03-08 19:08:12 · 1152 阅读 · 0 评论 -
OpenCV学习笔记(七):opencv保存png图片的压缩编码问题
今天在使用cv::imwrite保存PNG图像的时候发现了一个有趣的现象:保存128*128分辨率16位的图像,PNG图像压缩参数CV_IMWRITE_PNG_COMPRESSION设置为0,得到大小为32.2kB(33012字节),计算每一个像素的值为128*128*16/8/1024=32kB,算上文件头等信息是刚刚好的;保存256*256分辨率16位的图像,PNG图像压缩参数CV_IMWRI...原创 2018-01-30 21:30:00 · 7420 阅读 · 0 评论 -
在C++代码中判断运行模式(debug、release)和环境(win32、64)
在Debug模式下调试程序时,有可能需要程序执行额外的操作,比如输出值,显示额外信息;但是这些信息在Release模式下是不需要的,这时候可以通过下面的代码来进行干涉。#ifdef _DEBUG#else#endif // _DEBUG类似地,可以判断是否处于32位模式:#ifdef WIN32#else#endif // WIN32其中提到的_DEBUG、WIN3原创 2017-11-22 11:43:13 · 7592 阅读 · 0 评论 -
A*算法(一)——简单实现
最近准备参加海康威视的一个软件挑战赛(http://codechallenge.hikvision.com/topic_introd.aspx?k1=6),需要用到路径搜索的算法,参考了网上的一些案例,自己实现了一个简单的A*算法。A*算法是一种启发式的路径搜索算法。对于地图中的每一个节点,我们记录起点到该节点的消耗g,估算该节点到终点的消耗h(并不是准确值,有多种估算方法,简单的比如欧氏距离原创 2017-06-14 09:39:51 · 1167 阅读 · 0 评论 -
PAT练习(2)-1002 All Roads Lead to Rome
题目地址牛客网的PAT练习(https://www.nowcoder.com/pat/5/problem/4315):1002 All Roads Lead to Rome题目描述Indeed there are many different tourist routes from our city to Rome. You are supposed to find yo原创 2017-08-09 18:32:27 · 1312 阅读 · 0 评论 -
调用G2O,编译的时候提示:error C1083: 无法打开包括文件: “sys/time.h”
问题在引用了G2O的项目中,编译时提示错误 81 error C1083: 无法打开包括文件: “sys/time.h”: No such file or directory c:\program files\g2o\include\g2o\stuff\timeutil.h 33 1 G2OTest查看对应的代码位于C:\Program Files\g2o\include\g2o\stuf原创 2017-07-14 09:56:35 · 8736 阅读 · 1 评论 -
VS2013+Cmake便于g2o遇到问题:error MSB3073: 命令“setlocal D:\tools\cmake-3.6.0-rc3-win32-x86\bin\cmake.exe -D
在编译g2o库的install的时候遇到了如下的错误:错误 1 error MSB3073: 命令“setlocalD:\tools\cmake-3.6.0-rc3-win32-x86\bin\cmake.exe -DBUILD_TYPE=Debug -P cmake_install.cmakeif %errorlevel% neq 0 goto :cmEnd:cmEndendloca原创 2017-07-14 09:31:34 · 8464 阅读 · 2 评论 -
LNK2019/2001: 无法解析的外部符号的解决方法
在使用PCL库的时候发生了这样的错误:错误 64 error LNK2019: 无法解析的外部符号 "void __cdecl pcl::console::print(enum pcl::console::VERBOSITY_LEVEL,char const *,...)" (?print@console@pcl@@YAXW4VERBOSITY_LEVEL@12@PBDZZ),该符号在函数原创 2017-06-08 13:54:41 · 6960 阅读 · 3 评论 -
C++与运算(&)错误笔记(优先级)
在实际使用与运算的时候遇到了下面的错误:int _tmain(int argc, _TCHAR* argv[]){ int tmp = 915; int e = 1; for (int i = 0; i < 12; i++) { if (tmp & e == e) std::cout << true << std::endl; else std::cout <<原创 2017-02-23 20:38:41 · 469 阅读 · 0 评论 -
使用Eigen库出现:error C2719: “cameraMatrix”: 具有 __declspec(align('16')) 的形参将不被对齐
如题所示,在使用了Eigen库中Matrix4d类的时候,出现了error c2719,__declspec(align('16'))的错误。在网上查找了相关资料,知道了是数据对齐的问题,最后得到的解决方法为#pragma pack(push, 16)#include #include #include #pragma pack(pop)在包含相关头文件的前后增加了#pragm原创 2017-02-15 14:40:59 · 1235 阅读 · 0 评论 -
使用Eigen::Matrix4d出现错误:error C2719: “cameraMatrix”: 具有 __declspec(align('16')) 的形参将不被对齐
在使用Eigen库的时候发生了如上的错误,发生该错误的最简化代码为:void testMatrix(Eigen::Matrix4d cameraMatrix){};修改方法很简单,在形式参数前面添加&符号,即void testMatrix(Eigen::Matrix4d & cameraMatrix){};原创 2017-02-16 20:15:52 · 2259 阅读 · 3 评论 -
OpenCV学习笔记(五):OpenCV2.4.13+VS2013的配置(非本机使用)
要想将使用了OpenCV的程序运行在没有安装OpenCV的电脑上,需要将OpenCV的动态链接库(DLL)或静态链接库(LIB)进行打包,本文讲解使用静态链接库的方法。通过本文的方法,可以在VS2013生成的程序中自动打包所需的OpenCV库,可以让程序运行在没有安装OpenCV的电脑上。修改VC++目录通用属性->VC++目录->包含目录填入一下三行:D:\library\openc原创 2016-12-08 19:54:51 · 670 阅读 · 0 评论 -
内存共享函数OpenFileMapping,在release模式下返回NULL
共享内存的步骤为:CreateFileMapping创建共享的内存空间;OpenFileMapping打开共享内存,返回HANDLE型句柄;MapViewOfFile获取内存映射到该程序的内存,可以进行读写操作。 在实验中遇到了意外的情况,具体应用情景为:win10环境下使用共享内存在两个不同程序之间传递数据。在release模式下第二个程序调用OpenFileMapping始终原创 2016-12-04 14:07:25 · 10556 阅读 · 0 评论 -
C++自定义矩阵并重载“+”运算符,指针返回错误
自定义Matrix类,以Matrix为返回值的函数,在返回时会调用拷贝构造函数。由于自己定义矩阵的数值保存使用了指针,如果直接调用“=”运算符会导致得到的值错误,所以在使用“=”的话,一定要自己定义“=”运算符来拷贝指针的内容。原创 2016-12-03 20:14:41 · 845 阅读 · 0 评论 -
指针内容复制
最近在做项目的时候,需要通过内存共享的方式将三维点云(全部为float类型)发送给另一个程序进行显示。遇到问题:另一个程序获得共享内存的数据的指针之后,将char*转化为float*发生了错误,不能得到正确的float点坐标。情景:发送的点云为float*,使用strcpy_s((char*)pBuffer, sizeof(float)* 300000, (char*)pPoints);将原创 2016-12-03 15:42:13 · 3724 阅读 · 0 评论 -
2018网易互娱笔试题-手势锁
题目描述在移动应用开发中,手势锁是一种常见的保护用户数据安全的手段。现在小明也参与到一个新型手势锁的开发组中,负责开发其中的手势判断模块。这个新型的手势锁是通过用户在3*3的点阵界面上,通过连结点阵中的点,绘制出的图案确定的。用户在设置锁时,先绘制一个图形,在解锁时,只要绘制完全一致的图形,即可解锁成功。一个典形的手势锁如下图。为方便描述,我们给阵中的点进行如下的编号。...原创 2018-12-27 16:17:26 · 4738 阅读 · 4 评论