C++
文章平均质量分 63
计算机视觉与OpenCV
博主是《学习OpenCV4:基于Python的算法实战》和《深度学习计算机视觉实战》作者,从事自动驾驶感知融合与SLAM算法开发,分享深度学习、计算机视觉、OpenCV、自动驾驶、SLAM、C++/Python开发等方向的内容。
技术栈:C++、Python、深度学习,OpenCV、计算机视觉、SLAM、多传感器融合、PCL、ROS、ROS2、图像处理、编译、数据结构与算法、LeetCode、Qt、Eigen、Pytorch、TensorFlow、面试、校招/社招、简历指导。
欢迎学习交流。
展开
-
如何看待2023年大量劝入C++?
博主是《学习OpenCV4:基于Python的算法实战》和《深度学习计算机视觉实战》两本图书的作者,目前从事自动驾驶感知融合与SLAM算法开发,如果有对深度学习、机器学习,计算机视觉、OpenCV、图像处理、自动驾驶、SLAM、PCL、ROS_ROS2开发、多传感器融合、C++/Python语言开发等方向感兴趣的朋友,欢迎关注我的公众号“计算机视觉与OpenCV”,也可以加我微信study428讨论交流。原创 2023-10-14 22:04:38 · 260 阅读 · 0 评论 -
非常给力的GitHub仓库(深度学习、计算机视觉、OpenCV、自动驾驶、SLAM、C++/Python学习分享)
仓库地址:仓库拉取:不想拉取可以直接下载压缩包。原创 2023-05-31 11:53:40 · 1134 阅读 · 7 评论 -
【C++进阶】左值、右值、右值引用
左值和右值,最直观的理解就是:等号=左边的是左值,右边的是右值。准确的说一下,左值与右值的定义:左值引用是具名变量值的别名,而右值引用则是不具名(匿名)变量的别名。那哪些属于右值呢?右值引用由&&定义:#include <iostream>using namespace std; int func(){ int a = 10; return a; } void func1(int&& a){ cout << a原创 2022-02-28 07:54:12 · 790 阅读 · 0 评论 -
C++ round floor ceil trunc使用比较
C++ round/floor/trunc/ceil用法原创 2022-08-03 13:28:13 · 508 阅读 · 0 评论 -
【C++ 11 学习系列】C++11有哪些新特性,和C++98/03有什么差别
///////////////////////////////////////////////////////////////////////C++98是1998年制定的C++标准;C++03是2003年发布的一个修订版本;直到2011年才发布了C++11标准。Visual Studio 2010版本才对C++11有部分支持。G++ 4.0版本之后支持C++11。下面内容来自《C++11新特性》这本书,我觉得好的就截图分享给大家,如果需要这本书,请参考第一图移步,谢谢。C++11特性原创 2022-01-22 09:09:10 · 656 阅读 · 0 评论 -
Makefile教程(绝对经典)
或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。makefile关系到了整个工程的编译规则。转载 2022-10-30 09:35:25 · 593 阅读 · 2 评论 -
leetcode12与13: 整数与罗马数字互转
/* 罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并...原创 2019-11-21 17:35:07 · 226 阅读 · 0 评论 -
leetcode5:最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"/*中心扩展法*/class Solution {public: string longestPalindrome(string s) ...原创 2019-11-22 11:37:02 · 137 阅读 · 0 评论 -
leetcode26:删除排序数组中的重复项
/*给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定...原创 2019-12-16 13:26:41 · 243 阅读 · 0 评论 -
LeetCode53:最大子序列和
这个使用动态规划是比较好理解的,但是这个分治法对我这种脑子不好使的来说真是难懂,现在搞懂了,记录一下。// LeetCode53.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <vector>using namespace std;/*给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-.原创 2020-07-01 10:50:54 · 262 阅读 · 0 评论 -
leetcode20:有效的括号
题目描述:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示...原创 2019-12-16 13:08:43 · 217 阅读 · 0 评论 -
每日一篇(1):判断文件夹中是否有同名文件并处理重名问题
isSameFile判断是否有重名文件,QString fullfilepath需要使用全路径。bool isSameFile(QString fullfilepath){ std::fstream myfile; char* ch; QByteArray ba = fullfilepath. toLocal8Bit(); ch=ba.data(); myfile.open(ch, std::...原创 2018-05-18 09:53:13 · 7132 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 QString::fromStdWstring
原因是因为Qt里面默认没有支持标准的宽字符,需要在项目中做如下设置就好了:这里选择是就好了原创 2019-12-09 11:54:19 · 1262 阅读 · 0 评论 -
Boost C++学习(一)智能指针
std::auto_ptr第一个智能指针:std::auto_ptr 。 它基本上就像是个普通的指针: 通过地址来访问一个动态分配的对象。std::auto_ptr 之所以被看作是智能指针,是因为它会在析构的时候调用 delete 操作符来自动释放所包含的对象。 当然这要求在初始化的时候,传给它一个由 new 操作符返回的对象的地址。 既然 std::auto_ptr 的析构函数会调用 del...原创 2018-12-13 11:53:38 · 233 阅读 · 0 评论 -
Boost C++学习(四)字符串处理
区域设置#include <locale> std::locale loc; std::cout << loc.name() << std::endl; 全局区域设置可以使用类 std::locale 中的静态函数 global() 改变。 std::locale::global(std::locale("German")); 静态函数 ...原创 2018-12-13 17:54:51 · 2003 阅读 · 0 评论 -
解决opencv4编译结果在xp上不能调用
增加编译参数:-DOPENCV_CMAKE_SKIP_MACRO_WIN32_WINNT=ON原创 2020-09-03 11:22:22 · 497 阅读 · 2 评论 -
Windows使用vs远程调试
记录一下,容易忘记了。在vs的安装目录下面找到这个远程调是工具:Remote Debugger 默认情况下是安装的。拷贝对应的版本到远程机上去:打开msvsmon.exe,选项,配置权限。另外有一个坑:VS2019是不能远程调试xp的。可能2017都不行了。...原创 2020-09-02 15:35:41 · 665 阅读 · 0 评论 -
leetcode198/213/337:打家劫舍系列解题
// LeetCode198.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>/***************************************************************************************************************//打家劫舍I你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房.原创 2020-06-20 10:40:09 · 360 阅读 · 0 评论 -
STL之string的使用
// stl_string.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <cstring>#include <string>using namespace std;struct Tets{ int val; string str; Tets() = default; Tets(int v, string s) : val.原创 2020-06-12 15:28:37 · 304 阅读 · 0 评论 -
C++智能指针使用
// SharedPtr.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <memory>#include <vector>using namespace std;unique_ptr<string> uniqueptr_Test(){ unique_ptr<string> temp(new string("This is .原创 2020-05-14 15:32:59 · 467 阅读 · 0 评论 -
CRT调试内存信息检查内存泄漏
#include <iostream>#ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#endif#ifdef _DEBUG#define _CRTDBG_MAP_ALLOC#include <crtdbg.h>#define new DEBUG_CLIENTBLOCK#endifv.原创 2020-05-12 15:58:42 · 419 阅读 · 0 评论 -
C++ static_cast,reinterpret_cast,dynamic_cast使用示例比较
class Base{public: virtual void testprint() { cout << "base class print" << endl; }};class MyClass : public Base{public: void testprint() { cout << "MyClass class print" << endl; }};class .原创 2020-05-12 15:49:42 · 336 阅读 · 0 评论 -
Windows核心编程:获取文件大小
1、CreateFile获取文件的内核对象2、SetFilePointerEx 移动文件指针到文件头,因为前面ReadFile读取文件的时候会移动文件指针,这里移动了20byte3、GetFileSizeEx获取文件的逻辑大小4、GetCompressedFileSize获取文件的物理大小,这个比较有意思的地方就是这个函数的额第二个参数和返回值:ULARGE_INTEGER定义的是...原创 2019-12-24 10:10:25 · 895 阅读 · 0 评论 -
C++ 控制台五彩闪烁(玩儿而已)
int main(){ while (1) { system("Color 1A"); system("Color 2B"); system("Color 3C"); system("Color 4D"); system("Color 5E"); system("Color 6F"); system("Color A1"); system("Color...原创 2019-12-12 11:01:19 · 1088 阅读 · 0 评论 -
leetcode7:整数反转
我这用的算是笨办法吧,反正提交了几次,终于算是过了。数字类型得刷题注意:0,边界值(INT_MAX,INT_MIN),负数这些吧...class Solution {public: int reverse(int x) { int ax = x; if (ax > INT_MAX || ax <= INT_MIN) { return 0; } i...原创 2019-12-11 11:15:12 · 535 阅读 · 0 评论 -
C++遍历路径下文件的两种方法
我想问一下CSDN,我的标题含有 (_findfirst和FindFirstFile()) 咋就是非法字符了?????????_findfirst方法貌似有的时候不好使,后面研究一下。void getFilesPath(const string& path, vector<string>& vecFiles){ HANDLE file; str...原创 2019-10-31 14:43:21 · 425 阅读 · 0 评论 -
C++ volatile用法
(这是搜集并修改的,算是明白了一下volatile)volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。声明时语法:int volatile vInt;当要求使用 volatile 声明的变量的值的时候,系统总是重...原创 2018-11-07 20:15:42 · 1701 阅读 · 0 评论 -
初学算法概览
这是自己砍July大神的博客的时候随手记录一下的,有的自己没深入研究,也没看懂,这个只是记录一下要点,后面有时间继续深入研究。 目录红黑树(RB Tree)... 1二叉查找树... 1启发式搜索算法... 2A*搜寻算法... 2Dijkstra 算法... 3动态规划算法... 3广度优先搜索(BFS)... 4深度优先探索算法 DFS. ...原创 2018-11-09 11:09:46 · 192 阅读 · 0 评论 -
timerEvent不响应问题
花了两天时间找我的QObject::startTimer()定时到了之后却不进入void timerEvent(QTimerEvent *event);的问题,很是头大,最终找到了原因,还是自己的Qt学的不到家。在我的这个文件中还有一个boolevent(QEvent* e),我在这个里面的最后返回了return true;所以定时的事件就丢了,上代码看看:#include "qtim...原创 2018-10-30 17:03:38 · 3434 阅读 · 0 评论 -
C++ 正则表达式
正则表达式的匹配测试网站:https://c.runoob.com/front-end/854工作中写过的匹配正则表达式,在这里记录一下,后续有再继续补充:1、匹配模型:文件名.pdf.md5码.创建日期.pdf其中,文件名为任意文件名,创建日期精确到毫秒。正则表达式: ^.*.[p|P][d|D][f|F]..{32}.\d{17}.[p|P][d|D][f|F]$举...原创 2018-10-24 11:58:28 · 204 阅读 · 0 评论 -
每日一篇(10):C++各种类型的char*、QString、string、wstring、BSTR格式相互转化
(1)char*转QStringchar* pages;QString inputpage = QString(QLatin1String(pages));(2)QString转char*QString str; char* ch; QByteArray ba = str. toLocal8Bit(); // must ch=ba.data();(3)QString转换stri...原创 2018-05-25 13:01:35 · 805 阅读 · 0 评论 -
统计0和1的个数
intfun(unsignedintx){intn=0;while((x+1)){n++;x=x|(x+1);}returnn;}x&(x-1)统计1的个数,x|(x+1)统计0的个数原创 2018-01-03 20:29:04 · 1693 阅读 · 0 评论 -
C++中的size()、sizeof() 、strlen()、str.length()
c/c++中获取字符串长度。有以下函数:size()、sizeof() 、strlen()、str.length();一、数组或字符串的长度:sizeof()、strlen()1、sizeof():返回所占总空间的字节数2、strlen():返回字符数组或字符串所占的字节数sizeof(...)是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功...原创 2018-11-07 20:33:09 · 28069 阅读 · 3 评论 -
C++中嵌入Python的环境搭建
1、包含python环境:注意:python36.lib去路径下copy一份命名为python36_d.lib,在下面加载上去,此处没改。2、编写CppPython.pydef add(a,b): print ("in python function add") print ("a = " + str(a)) print ("b = " + ...原创 2018-11-08 16:47:59 · 775 阅读 · 0 评论 -
VS设置release的调试
VS会优化生成信息,所以没法像debug那样的顺利调试,但是关闭优化,启动debug调试信息的话就可以进行调试了,主要的设置如下:首先打开菜单 项目->项目属性页选择 配置属性->链接器->调试->生成调试信息 改为 是选择 配置属性->C/C++ ->常规->调试信息格式 改为 用于“编辑并继续”的程序数据库(/ZI)选择 配置...原创 2019-08-07 12:00:39 · 2054 阅读 · 0 评论 -
cmdline学习
cmdline介绍cmdline 是一个非常easy好用的C++命令行解析库,其基于模板。所以使用非常easy,写出的代码也非常优雅。因为其仅仅包括一个头文件。所以非常easy集成到自己的项目中。cmdline项目托管地址Github:https://github.com/tanakh/cmdlinecmdline使用int main(){ // 创建一个命令行解析...原创 2019-07-12 11:58:48 · 7206 阅读 · 0 评论 -
Eigen使用入门
下载安装包解压(路径:http://eigen.tuxfamily.org/index.php?title=Main_Page)。新建项目之后设置包含路径就可以使用了:#include "stdafx.h"#include <iostream>#include <Eigen/Dense>using namespace std;using n...原创 2019-07-16 17:25:12 · 513 阅读 · 0 评论 -
Boost C++学习(三)事件处理
很多开发者在听到术语'事件处理'时就会想到GUI:点击一下某个按钮,相关联的功能就会被执行。 点击本身就是事件,而功能就是相对应的事件处理器。这一模式的使用当然不仅限于GUI。 一般情况下,任意对象都可以调用基于特定事件的专门函数。 本章所介绍的 Boost.Signals 库提供了一个简单的方法在 C++ 中应用这一模式。严格来说,Boost.Function 库也可以用于事件处理。 不过...原创 2018-12-13 17:23:37 · 539 阅读 · 0 评论 -
Boost C++学习(二)函数对象
Boost.BindBoost.Bind 是这样的一个库,它简化了由C++标准中的 std::bind1st() 和 std::bind2nd() 模板函数所提供的一个机制:将这些函数与几乎不限数量的参数一起使用,就可以得到指定签名的函数。 这种情形的一个最好的例子就是在C++标准中定义的多个不同算法。#include <iostream> #include <vecto...原创 2018-12-13 12:03:00 · 212 阅读 · 0 评论 -
如何判断计算机的大小端模式
大小端模式介绍大端(存储)模式:是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。小端(存储)模式:是指一个数据的低位字节序内容存放在低地址处,高位字节序的内容存放在高地址处。(可以总结为“小小小”即低位、低地址、小端)在计算机系统中,我们是以字节为单位存放数据的,每个地址单元都对应着一个字节,一个字节为8bit。但在C语言中存在不同的数据类型,占用的字节数也各不...原创 2018-12-12 14:19:17 · 1154 阅读 · 0 评论