- 博客(23)
- 收藏
- 关注
原创 每日C++小程序小研究·3·2023.7.26 (实现一个简略的线程安全的队列:)
用于在多线程编程中进行线程间的同步和通信。它提供了一种机制,允许一个或多个线程在满足特定条件之前等待,并在条件满足时被唤醒。
2023-07-26 07:00:00
153
原创 每日C++小程序小研究·2·2023.7.25
如果线程甲需要等待线程乙完成任务,可以使用C++标准库的条件变量来等待事件发生。<condition_variable>中提供了condition_variable和condition_variable_any,前者只能配合mutex使用,而后者可以与任意符合互斥标准的类型使用,会产生额外开销。例如可以实现一个生产者消费者模型,通过队列来传递数据,一端准备数据另一端处理数据,其中条件变量的作用是消费者线程取出数据前检查队列是否非空,否则释放锁并等待生产者线程准备数据。
2023-07-25 09:00:00
159
原创 每日C++小程序小研究·1·2023.7.21
今日:c++线程并行,获取硬件可支持的最大数,进行分解任务执行,然后合并;工作日,每日c++小代码分析;旨在每日靠近“精通”一点点!
2023-07-21 09:47:23
71
原创 OpenCV·图形处理基本函数使用整理,未完待续……
1.opencv读写图:cv::imwrite("filepath",cv::mat);// 将tmp图像的roi区域 拷贝一份给dst。// 将Mat转成内存文件。// ROI, 不规则多边形。// 根据环形曲线画边框。
2023-06-10 13:51:41
132
原创 C++11新特性·笔记五·tuple元组详解
一种新的类模板;可以存储任意数量、任意数据类型的数据;当需要存储多个不同数据类型的数据时,可以使用tuple,但函数需要返回多个数据时,可以将数据存储到tuple中,只需返回一个tuple类型值即可;实例化 tuple 模板类对象常用的方法有两种,一种是借助该类的构造函数,另一种是借助 make_tuple() 函数;举例:int main()// 4)的左值方式, fourth{20,'b'}// 5)的右值方式, fifth{10.'a'}
2023-06-08 14:47:11
222
原创 C++11新特性·笔记四·函数模板支持默认模板参数
C++11 标准中,我们可以像 func(97) 这样调用模板函数,因为编译器可以根据实参 97 自行推导出模板参数 U 的类型为 int,并且根据返回值 val=97 推导出 R 的类型也为 int;再次强调,当默认模板参数和自行推导的模板参数同时使用时,若无法推导出函数模板参数的类型,编译器会选择使用默认模板参数;总的来说,C++11 支持为函数模板中的参数设置默认值,在实际使用过程中,我们可以选择使用默认值,也可以尝试由编译器自行推导得到,还可以亲自指定各个模板参数的类型。
2023-05-27 13:30:09
175
原创 C++11·新特性笔记二·关键字decltype
3.exp 就是一个普通的表达式,它可以是任意复杂的形式,但是我们必须要保证 exp 的结果是有类型的,不能是 void;例如,当 exp 调用一个返回值类型为 void 的函数时,exp 的结果也是 void 类型,此时就会导致编译错误;1.decltype(表达式) 变量名 = 初始值;//推导出“表达式”的类型,用来声明变量类型;//ok,不要求声明时初始化,而auto需要;
2023-05-26 16:27:13
100
1
原创 C++11新特性·笔记一·auto
在11 之前的版本(C++98 和 C++ 03)中,定义变量或者声明变量之前都必须指明它的类型,比如 int、char 等;但是在一些比较灵活的语言中,比如等,程序员在定义变量时可以不指明具体的类型,而是让编译器(或者解释器)自己去推导,这就让代码的编写更加方便。C++11 为了顺应这种趋势也开始支持自动类型推导了!C++11 使用关键字来支持自动类型推导。
2023-05-26 15:41:25
225
1
原创 stm32f GPIO类型总结(实际应用)
gpio输入输出模式知识点:{ 上拉输入:上拉电阻保证端口空闲状态为高电平; 下拉输入:下拉电阻保证端口空闲状态为低电平; 开漏输出:低电平时输出寄存器,n-mos工作,只能输出低电平,而需要高电平时,输出路不工作,由端口处的上拉电阻来实现高电平; 推挽输出:高低电平全部由内部控制(p-mos and n-pos同时工作),高输出高,低输出低; 复用开漏...
2020-03-24 10:25:10
207
原创 数据库在软件开发中的作用是什么?
(1)数据以“文件”形式可长期保存在外部存储器的磁盘上。由于计算机的应用转向信息管理,因此对文件要进行大量的查询、修改和插入等操作。(2)数据的逻辑结构与物理结构有了区别,程序和数据分离,使数据与程序有了一定的独立性,但比较简单。数据的逻辑结构是指呈现在用户面前的数据结构形式。数据的物理结构是指数据在计算机存储设备上的实际存储结构。程度与数据之间具有“设备独立性”,即程序只需用文件名就可与数据...
2020-03-13 11:09:45
3656
原创 布局管理器不但能控制器件的布局,还有个很重要的用途是,它能使器件的大小随着窗口大小的改变而改变。
其实布局管理器不但能控制器件的布局,还有个很重要的用途是,它能使器件的大小随着窗口大小的改变而改变。
2020-03-13 09:15:23
148
原创 关于多线程启动问题,以qt为例:qthread->start()后,不会进入run()问题
QT中,开始线程的接口为Qthread调用start()函数来进行开启线程;not:此处不是简单的理解为start后进入线程的run()函数,进而进行线程运行;but:start()仅仅代表线程准备的意思,何时进入run()阶段,取决于操作系统的调度,在众多就绪线程中,按照优先级and操作系统自身的特性,进行开启which线程,才进入到run()。...
2020-03-11 15:50:26
5016
原创 关于控件中同时存在时间和槽机制共同触发时
关于控件中同时存在时间和槽机制共同触发时: 例: 若控件点击clicked()和qmousepressevent()共同存在并触发时,优先进入Qmousepressevent()中,在函数最后没有写 return QPushButton::mousePressEvent(event);的情况下是不会执行clicked()函数,在return的情况下先执行事件然后继续执行槽函数。...
2018-11-22 14:11:57
128
原创 Qtshowevent 常用关键一点小技巧 先进入界面,然后做处理
构造函数中:{ timer = new QTimer(this); timer->setSingleShot(true); connect(timer, SIGNAL(timeout()), this, SLOT(DelayTriggel()));//先进入界面}void ProgSimulationWindow::DelayTriggel(){ ...
2018-11-16 14:37:27
17586
原创 qpixmap的load(“加载图形文件 绝对路径 用 / 不能用\ ”)
qpixmap的load(“加载图形文件 绝对路径 用 / 不能用\ ”)
2018-10-31 14:11:55
3441
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人