栏目: C++

实现Dijkstra算法最短路径问题详解

Nobodycangobackandstartanewbeginning,butanyonecanstarttodayandmakeanewending.Name:WillamTime:2017/3/81、最短路径问题介绍问题解释:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路...

2021-08-12 77 0 0 阅读全文

C++实现LeetCode(56.合并区间)

Givenacollectionofintervals,mergealloverlappingintervals.Example1:Input:[[1,3],[2,6],[8,10],[15,18]]Output:[[1,6],[8,10],[15,18]]Explanation:Sinceinte...

2021-07-16 74 0 0 阅读全文

C++11如何实现无锁队列

无锁操作的本质依赖的原子操作,C++11提供了atomic的原子操作支持atomiccompare_exchange_weak/compare_exchange_strong当前值与期望值相等时,修改当前值为设定值,返回true当前值与期望值不等时,将期望值修改为当前值,返回falsememory_...

2021-08-12 116 0 0 阅读全文

OpenCV实现图像膨胀

图像的膨胀与图像腐蚀是一对相反的过程,与图像腐蚀相似,图像膨胀同样需要结构元素用于控制图像膨胀的效果。结构元素可以任意指定结构的中心点,并且结构元素的尺寸和具体内容都可以根据需求自己定义。定义结构元素之后,将结构元素的中心点依次放到图像中每一个非0元素处,如果原图像中某个元素被结构元素覆盖,但是该像...

2021-06-24 81 0 0 阅读全文

C++回调函数的理解和使用教程

一、回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。回调函数机制:1、定义一个函数...

2021-04-10 86 0 0 阅读全文

C++基于Socket UDP网络编程实现简单聊天室功能

0.通信步骤流程图(左:服务器;右:客户端;)1.服务器代码1.1服务器类头文件(CServer_UDP.h)#pragmaonce#includeclassCServer_UDP{public:CServer_UDP();voidSendMsg(constcharsendBuf[]);voidRe...

2021-07-01 81 0 0 阅读全文

C++实现LeetCode(189.旋转数组)

Givenanarray,rotatethearraytotherightbyksteps,wherekisnon-negative.Example1:[1,2,3,4,5,6,7][5,6,7,1,2,3,4][7,1,2,3,4,5,6][6,7,1,2,3,4,5][5,6,7,1,2,3,4...

2021-07-16 100 0 0 阅读全文

OpenCV实现霍夫变换直线检测

霍夫变换(HoughTransform)是图像处理中检测是否存在直线的重要算法,该算法是由PaulHough在1962年首次提出,最开始只能检测图像中的直线,但是霍夫变换经过不断的扩展和完善已经可以检测多种规则形状,例如圆形、椭圆等。霍夫变换通过将图像中的像素在一个空间坐标系中变换到另一个坐标空间坐...

2021-06-24 63 0 0 阅读全文

C++读写配置项的基本操作

读写配置项,在编程当中是非常常用的东西。读写的数据量很小的时候,就没必要用数据库或者Excel之类的东西。今天特意总结下C++、还有Qt读写配置项的操作。其实操作非常简单。废话不多说,下面直接上代码。C++写配置项#include#includeusingnamespacestd;intmain()...

2021-04-05 89 0 0 阅读全文

OpenCV实现可分离滤波

自定义滤波无论是图像卷积还是滤波,在原图像上移动滤波器的过程中每一次的计算结果都不会影响到后面过程的计算结果,因此图像滤波是一个并行的算法,在可以提供并行计算的处理器中可以极大的加快图像滤波的处理速度。图像滤波还具有可分离性先对X(Y)方向滤波,再对Y(X)方向滤波的结果与将两个方向的滤波器联合后整...

2021-06-24 75 0 0 阅读全文

C++实现LeetCode(61.旋转链表)

Giventheheadofalinkedlist,rotatethelisttotherightbykplaces.Example1:Input:head=[1,2,3,4,5],k=2Output:[4,5,1,2,3]Example2:Input:head=[0,1,2],k=4Output:...

2021-07-16 88 0 0 阅读全文

C++文件操作:Fopen / Fread / Fwrite

1.方法介绍    1.1 open()函数:打开文件 包含头文件:#include格式:FILE*fopen(constchar*path,constchar*mode)参数:path:需要打开的文件路径mode:文件打开方式modefunctionr以只读方式打开文件,该文件必须存在。r+以可读...

2021-07-01 72 0 0 阅读全文

C++实现LeetCode(60.序列排序)

Theset[1,2,3,...,n]containsatotalofn!uniquepermutations.Bylistingandlabelingallofthepermutationsinorder,wegetthefollowingsequenceforn=3:"123"...

2021-07-16 104 0 0 阅读全文

Fstream的基本用法

#include#includeusingnamespacestd;intmain(){ifstreamin;in.open("test.txt");if(!in){coutx){cout

2021-07-01 83 0 0 阅读全文

C++遍历磁盘驱动器的示例代码

#include#includetypedefstructtagDRIVER{//(1)磁盘盘符wchar_tdisk;//(2)磁盘总的大小doubleall;//(3)磁盘可用空间doublefree;//(4)磁盘类型(是光盘、硬盘、还是移动硬盘)inttype;}DRIVER;voidGet...

2021-04-05 78 0 0 阅读全文

深入理解Qt信号槽机制

1.信号和槽概述 信号槽是Qt框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式(发布-订阅模式)。当某个`事件`发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思...

2021-06-24 97 0 0 阅读全文

C++ Fopen()函数的参数说明

格式:文件指针名=fopen(文件名,使用文件方式)参数:文件名意义"C://TC//qwe.txt"文件C:/TC/qwe.txt"qwe.txt"和程序在同一目录下的qwe.txt文件使用方式意义“rt”只读打开一个文本文件,只允许读数据“wt”只写打开或...

2021-07-01 90 0 0 阅读全文

最新VSCode C/C++ 环境配置的详细教程

一次在VScode上配置C/C++环境的记录。一、VScode下载及安装VScode官网下载链接:https://code.visualstudio.com/Download1.安装路径自行选择,例如我的安装路径为D:\ProgramFiles\MicrosoftVSCode;2.安装完成进入VSc...

2021-04-12 86 0 0 阅读全文

OpenCV实现图像距离变换

图像中两个像素之间的距离有多种定义方式,图像处理中常用的距离有欧式距离、街区距离和棋盘距离欧式距离略街区距离两个像素点X方向和Y方向的距离之和。欧式距离表示的是从一个像素点到另一个像素点的最短距离,然而有时我们并不能以两个点之间连线的方向前进,例如在一个城市内两点之间的连线可能存在障碍物的阻碍,因此...

2021-06-24 52 0 0 阅读全文

C++实现推箱子小项目

#include#includeusingnamespacestd;constintMAXN=10;classGM{intx=1,y=1;//x纵坐标,y横坐标intcount=0;public:charmap[MAXN][MAXN];GM();intRUN();intcheck(intx1,int...

2021-08-02 74 0 0 阅读全文