- 博客(65)
- 资源 (1)
- 收藏
- 关注
原创 Windows下打包C++程序无法执行:无法定位程序输入点于动态链接库
这样可以确保生成的可执行文件在其他系统上也能够正常运行,而不需要依赖于特定的动态链接库。使用该方法的缺点就是编译后的exe文件体积会变大。 本想下载相应的dll来解决,但是这个报错不提示缺失哪个dll,所以使用CMake编译指令。而且exe文件在其它电脑上可以运行,所以应该是我的电脑缺失相应的dll。 通过注释头文件的方式,初步定位问题是因为使用了。在CMake中的意思是设置可执行文件链接器的标志为。
2023-12-04 14:00:32 511
原创 【C/C++】static和const的作用和用法
与函数内的普通局部变量不同,静态局部变量在函数的多次调用之间保持其值,并且仅在第一次进入声明该变量的代码行时进行初始化。通常,将静态成员变量的初始化放在类的实现文件中,并在头文件中声明静态成员变量的存在。静态局部变量的初始化只在第一次进入声明它的代码行时进行,之后的函数调用不会再次初始化它。注意,在构造函数的函数体内不能对const成员变量进行赋值操作,因此必须使用构造函数的初始化列表来进行初始化。静态局部变量的初始化只发生一次,以后每次进入声明该变量的作用域时,都不会重新初始化,而是保留上一次的值。
2023-06-16 09:56:51 454
原创 【C/C++】多线程安全问题的原因及解决方法
为了解决这些多线程安全问题,可以使用同步机制(如互斥量、信号量、条件变量)来协调线程之间的访问,或者使用并发编程模型(如锁机制、原子操作、并发数据结构)来保证数据的一致性和正确性。这些是常见的C++多线程编程中可能出现的安全问题,避免这些问题需要合理地使用同步机制,如互斥量(mutex)、条件变量(condition variable)、原子操作(atomic)等来保护共享数据的访问。的值,另一个线程对其进行写操作,由于没有进行同步,可能导致读取到不一致或无效的数据。上述代码中,两个线程同时对。
2023-06-15 09:29:42 1834
原创 【C/C++】默认构造函数
注意,如果你显式定义了任何构造函数(包括拷贝构造函数、移动构造函数等),编译器将不再生成默认构造函数。这意味着如果你需要一个默认构造函数,但已经定义了其他构造函数,你需要显式提供一个不带参数的构造函数。在C++中,如果你没有显式地定义类的构造函数,编译器会为该类生成一个默认构造函数。它的作用是在创建对象时初始化类的成员变量。这里没有显式定义构造函数,因此编译器将为该类生成一个默认构造函数。以上代码中,我们通过显式提供一个默认构造函数来确保即使已经定义了其他构造函数,仍然可以使用默认构造函数创建对象。
2023-06-12 22:06:32 259
原创 【C/C++】初始化列表
C++初始化列表是一种用于在对象构造过程中初始化成员变量的语法结构。它使用在构造函数的参数列表后面使用冒号(:)来指定成员变量的初始化值。
2023-06-12 20:46:54 650
原创 【C/C++】lameda匿名函数
C++中的lambda函数是一种匿名函数,可以在需要函数对象的地方使用,而无需单独定义一个函数。lambda函数可以捕获上下文中的变量,并且可以作为函数指针或函数对象使用。
2023-06-12 20:36:36 533
原创 【C/C++】函数指针
函数指针在C++中是强大且灵活的工具,可以用于实现回调机制、动态函数调用等多种应用场景。请注意,函数指针的语法可能较为复杂,需要理解指针和函数声明的基本知识。
2023-06-11 11:10:21 566
原创 【C/C++】typedef的用法
在C++中,typedef是一种用于为已有类型创建别名的关键字。它可以提高代码的可读性和可维护性,使得类型的用途更加清晰明了。typedeftypedef 原类型 新类型;总之,typedef是C++中用于为已有类型创建别名的关键字,可以提高代码的可读性和可维护性。它常用于创建类型别名、指针类型别名、函数指针类型别名等,以及为复杂类型创建别名。
2023-06-11 10:33:07 659
原创 【C/C++】std::function 的作用和用途
是 C++ 标准库中的一个类模板,它用于封装可以调用的任意可调用对象,包括函数指针、函数对象、Lambda 表达式等。提供了一种通用的方式来存储、复制和调用可调用对象,使得可以将它们作为参数传递给其他函数、存储在容器中,或者作为返回值返回。它是一种多态函数包装器,可以在运行时决定具体要调用的函数或函数对象。通过使用,可以实现更灵活的函数传递和回调机制,提高代码的可复用性和可扩展性。
2023-06-11 10:17:29 563
原创 【C/C++】作用域解析运算符(Scope Resolution Operator)在C++中的用法和作用
作用域解析运算符(Scope Resolution Operator)是在C++中使用的一种语法,它允许您指定特定的作用域来访问类、枚举、命名空间中的成员或类型。
2023-06-10 10:11:50 596
原创 【C/C++】探索C/C++中的类型重命名机制
C/C++是一种强类型的编程语言,类型系统在代码编写和理解中起着重要的作用。为了提高代码的可读性和可维护性,C/C++提供了多种类型重命名机制,使得开发人员可以为现有类型引入更直观、易懂的名称。using别名、宏定义和typedef关键字,并比较它们的使用方法和适用场景。宏定义是C/C++中另一种常见的类型重命名机制。通过定义宏,可以将一个类型名称替换为另一个名称。将类型重命名为json。宏定义具有全局替换的特性,但也容易导致命名冲突和意外替换的问题,因此需要谨慎使用。
2023-06-10 09:32:59 1117
原创 【C/C++】回调函数
回调函数是一种在程序运行期间,它通常用于。在回调函数的使用中,当某些事件发生时,系统会调用预先注册好的回调函数,将事件相关的数据传递给回调函数,由回调函数进行处理。这种回调函数的机制常用于异步通信、网络编程、GUI 前端等场景中,常见的回调函数包括事件处理函数、信号处理函数、消息处理函数等。回调函数通常使用函数指针来进行实现,首先定义一个函数指针类型,然后将回调函数的地址赋值给函数指针,最后在需要注册回调函数的地方将函数指针作为参数传入即可。在回调函数中,,而。
2023-06-09 17:49:09 1454
原创 【C/C++】内联函数
内联函数的优点是减少函数调用的开销,因为函数的代码被直接插入到调用点,避免了函数调用的开销,特别是对于简短的函数。然而,内联函数适用于代码量较小的函数,如果函数代码较长,内联可能导致代码膨胀,使可执行文件变得较大。因此,编译器可能会选择忽略内联函数的内联请求,而将其视为普通函数。需要注意的是,内联函数的定义通常放在头文件中,以便在需要调用该函数的地方进行内联展开。这是因为在编译单元之间进行函数内联需要编译器能够访问函数的定义。
2023-06-09 10:27:15 726
原创 【C/C++】预处理功能
C++中的预处理器是一个内置的功能,**用于在编译代码之前对源代码进行处理。**它通过识别以井号(#)开头的预处理指令,并根据这些指令执行相应的操作。
2023-06-07 22:50:12 48
原创 pyqt5 中让QTableWidget 列宽自适应最大化
的水平表头视图,它控制了表格中每列的大小和行高。在这个例子中,我们创建了一个包含3列4行的。,它会将列的宽度自动调整为最大化。的列宽最大化,你可以使用。方法将数据添加到表格中。方法将列的调整模式设置为。的列宽就会被最大化调整。设置表头的标签,并使用。
2023-05-24 09:25:43 2095
原创 基于ESP8266和微型舵机的远程灯控制系统
本项目基于ESP8266开发板和微型舵机,实现了一套远程灯控系统,达到了通过WIFI控制灯具开关的目的。
2022-08-08 21:29:42 3033 4
原创 Python变量作用域问题
在Python中,没有块级作用域,也就是说类似if语句块、for语句块、with上下文管理器等等是不存在作用域概念的,它们等同于普通的语句。
2022-03-31 10:13:47 2060
原创 pyhton二维列表切片
前言在力扣刷题过程中想使用二维列表(数组)的切片,但是遇到了一些小坑,记录一下。错误语法:threexthree = board[i:i + 3][j:j + 3]threexthree = board[i:i + 3, j:j + 3]正确语法:[list[i][0:2] for i in range(0,3)]numpy正确语法:list_nparr[0:2,0:2]...
2021-09-13 21:04:30 5712
原创 异或运算^
1. 异或运算异或:相同得0;不同得1举例:1^1=0;1^0=1;0^1=1;0^0=0;2. 特点a^a=0; 自己和自己异或等于0a^0=a; 任何数字和0异或还等于他自己a^b^c=a^c^b; 异或运算具有交换律
2021-09-12 17:29:49 128
原创 win10环境下通过git向github推送代码
1. 安装git工具2. 创建SSH Key在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:ssh-keygen -t rsa -C "youremail@xxx.com"id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥。3.在github中添加公钥内容4.在github中创建一个空仓库
2021-09-09 15:38:23 253
原创 Python列表随机抽取指定数量元素
import randomlist1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州']# 随机抽取list1中三个元素赋值给aa = random.sample(list1, 3)
2021-09-08 15:17:31 6831 1
原创 基于YOLOV5的FPS类游戏检测auto aim
FPSAutomaticAiming——基于YOLOV5的FPS类游戏自动瞄准AI简介本项目基于yolov5,实现了一款FPS类游戏(CF、CSGO等)的自瞄AI,旨在使用现有网络结构实现一个完整的落地项目,仅供人工智能自动控制等方面的学习研究,不可用于非法用途!!!环境配置1.软件环境使用conda导入yolo.yaml。name: yolochannels:- pytorch- conda-forge- https://mirrors.ustc.edu.cn/anaconda/pkg
2021-08-30 12:56:50 25731 98
原创 解决Ubuntu下Pycharm、IDEA等系列软件无法键入中文问题
操作环境:Ubuntu 20.04.5 LTSPycharm 2021.2方案:成功方案:參考:https://github.com/libpinyin/ibus-libpinyin/issues/289#issuecomment-800831955概述:点击idea或者pycharm菜单 "Help -> Edit Custom VM options..."添加:-Drecreate.x11.input.method=true 到最后一行重启IDEA /
2021-08-19 20:40:27 235 2
原创 DRUNet—Infrared Small UAV Target Detection Based on Residual Image Prediction via Global and Local
前言论文题目:基于全局和局部残差图像预测的红外小型无人机目标检测(Infrared Small UAV Target Detection Based on Residual Image Prediction via Global and Local)提出网络结构:DRUNet1.摘要热红外成像具有在白天和夜间条件下监测无人机 (UAV) 的能力。然而,红外无人机的远程探测往往受到目标小/暗淡、杂波大、复杂背景噪声的影响。传统的基于局部先验和非局部先验的方法通常具有较高的误报率和较低的检测精度
2021-08-18 09:20:27 2860 34
原创 ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
在Ubuntu下配置Tensorflow-gpu1.8,安装成功后跑代码发现没有跑在GPU上,回头来检查问题。重装TF后出现ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory错误,经过初步排查,问题出在cuda版本与TF版本不匹配上了,但是网上说TF1.8和cuda9匹配,我本地安装的是cuda9.2,我以为不是cuda的问题,忙活了半天换TF。无意间找到一篇博客说是cuda9.X(
2021-07-28 21:22:54 228
原创 1846. 减小和重新排列数组后的最大元素
题目:解题思路:往题目条件上怼就完事了了。首先给数组排个序,然后看第一个是不是1,不是1换成1。然后开始遍历数组,要求相邻两个值之差绝对值小于等于1,且要返回最大的值,则后一个值要大于等于前一个值。代码:class Solution: def maximumElementAfterDecrementingAndRearranging(self, arr: List[int]) -> int: arr.sort() if arr[0]!=1:
2021-07-15 14:27:13 74
原创 1818. 绝对差值和
题目:解题思路1:排序 + 二分先给nums1排序,再用二分法查找nums1中离nums2[i]最近的点,再用最近的nums1替换nums1[i],计算绝对差值和,统计所有的绝对差值和最小的那个并返回。代码1:class Solution: def minAbsoluteSumDiff(self, nums1: List[int], nums2: List[int]) -> int: n = len(nums1) #列表长度 sort_n1 = s
2021-07-15 11:40:33 96
原创 折半查找(二分法)
折半查找,⼜称“⼆分查找”,仅适⽤于有序的顺序表。查找成功示例:Step1:Step2:Step3:Step4:查找失败示例:Step1:Step2:Step3:Step4:Step5:示例代码:
2021-07-13 19:25:25 367
原创 275. H 指数 II
题目:给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 。编写一个方法,计算出研究者的 h 指数。h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数不多于 h 次。)"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/h-index-ii著作权归.
2021-07-12 17:32:20 84
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人