自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 opencv鼠标响应与操作

和有一节课调整亮度对比度的有共同点.这节讲得好,建议仔细揣摩。

2024-02-16 14:08:57 619

原创 opencv通道分离与合并

这里split后一个是指针 但是我们并没有看到指针在哪,就看到一个数据类型Mat和数组vetcor。将其他两个通道改为0 0 现在通道颜色为255 0 0 为蓝色 可以显示。//这部分的大小是固定的,包含矩阵的大小,存储的方式,矩阵存储的地址等等;//Mat(matrice)基本结构 (头部 数据部分)split(image,mv);//原图 指针(Mat)//另一个部分是一个指向矩阵包含像素值的。其余两个类似操作 满足 BGR。将代码修改成如下这样。

2024-02-15 11:12:52 730

原创 opencv图像像素的读写操作

【代码】opencv图像像素的读写操作。

2024-02-11 23:12:54 974 1

原创 opencv mat用法赋值克隆的操作和一些基本属性

std::cout

2024-02-11 22:16:47 1456

原创 opencv 图像色彩空间转化

思路和cpp平时项目相同 一个.h写一类,然后.cpp来实现函数,再将.cpp写入main.cpp文件中,视为添加函数。第一节是常规安装 看他的步骤装就行了,记得配置完点应用再点确定,我第一次就是 没点然后就失败了,又得重配置一次。贾志刚的这个好像是2.0版本,30小时的,语言更加精炼,适合初级入门学习。//做的是一个尺寸调整 太大的调整。最好能加一个if条件判断错误。

2024-02-11 19:31:00 1159

原创 STL演讲比赛流程管理系统

很难,一边看视频,一边思考了好多天。

2024-02-10 20:10:53 1034 1

原创 STL案例 员工分组

公司今天招聘了10个员工(ABCDEFGHIJ),10名员工进入公司之后,需要指派员工在那个部门工作。3. 分组后,将员工部门编号作为key,具体员工作为value,放入到multimap容器中。通过multimap进行信息的插入 key(部门编号) value(员工)员工信息有: 姓名 工资组成;部门分为:策划、美术、研发。2. 遍历vector容器,取出每个员工,进行随机分组。1. 创建10名员工,放到vector中。随机给10名员工分配部门和工资。4. 分部门显示员工信息。

2024-02-07 15:13:58 370

原创 STL案例 评委打分

2. 遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中。有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。3. sort算法对deque容器中分数排序,去除最高和最低分。1. 创建五名选手,放到vector中。4. deque容器遍历一遍,累加总分。

2024-02-07 15:12:04 544

原创 STL算法(下)

accumulate使用时头文件注意是numeric,这个算法很实用。

2024-02-07 11:54:04 872

原创 STL算法(中)

对容器内元素进行排序;//按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置// beg开始迭代器// end结束迭代器// _Pred谓词sort属于开发中最常用的算法之一,需熟练掌握代码实现洗牌指定范围内的元素随机调整次序;//指定范围内的元素随机调整次序// beg开始迭代器// end结束迭代器//利用洗牌算法打乱顺序再加上随机种子实现乱序代码实现总结:洗牌算法比较实用,使用时记得加随机数种子两个容器元素合并,并存储到另一容器中;

2024-02-06 23:03:16 1067

原创 STL常用算法(上)

要重载 "==" 底层find知道如何对比person数据类型因为自定义类型不同于内置类型,用本代码为例,数据类型为以下是明确类型bool operator==(const Person&p)//明确该如何对待Person数据类型 如何相等}else{

2024-01-30 12:10:40 845

原创 c++谓词

很多算法使用函数对象来指定要进行的二元运算,或者指定谓词来确定进行特定运算。谓词是一个返回bool类型的值的函数,因为函数对象是一种类型的对象,实现operator()()成员函数并返回bool类型的值,所以函数对象也是谓词。经过代码验证发现谓词不止用仿函数(函数对象)来定义,用普通函数类型定义就行,所以关系应该是谓词包括普通函数和仿函数。谓词(返回bool类型的仿函数)

2024-01-30 12:01:59 501

原创 STL容器大总结区分(下)

public:bool operator()(const Person &p1, const Person &p2)//这里加不加&都可,值传递或者引用传递//按照年龄进行排序 降序//自定义数据类型 都会指定排序规则Person p1("刘备", 23);Person p2("关羽", 28);Person p3("张飞", 25);Person p4("赵云", 21);it!= s.end();it++)

2024-01-28 11:11:02 1648

原创 仿函数总结

概念重载函数调用操作符()的类,其对象常被称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质函数对象(仿函数)是一个类,不是一个函数特点:一 函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值二 函数对象超出普通函数的概念,函数对象可以有自己的状态三 函数对象可以作为参数传递以上三点先脑子有个印象。

2024-01-28 10:32:10 833

原创 STL容器大总结区分(中)

今天主要说栈stack和queue队列先说deque,因为vector不能在头部进行操作,所以deque应运而生deque双端数组 内部有个中控器不同点:cout

2024-01-27 11:08:45 463

原创 STL容器大总结区分(上)

如图所示 ,按大小说明其重要性那就先说两个最重要的:vector---数组 list-----链表vector数据结构和,也称为不同之处在于数组是静态空间,而vector可以并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器list 链表有数据域和指针域优点 1可以对任意位置进行快速插入和删除元素2动态分配存储缺点 容器遍历速度慢,因为要。

2024-01-27 00:34:06 1609

原创 C++ 拷贝构造函数

如果在类中没有定义拷贝构造函数,编译器会自行定义一个。如果类带有指针变量,并有动态内存分配,则它必须有一个拷贝构造函数。是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象。是一个对象引用,该对象是用于初始化另一个对象的。调用拷贝构造函数并为指针 ptr 分配内存。复制对象把它作为参数传递给函数。复制对象,并从函数返回这个对象。通过使用另一个同类型的对象。// 构造函数的主体。line 大小 : 10。来初始化新创建的对象。来初始化新创建的对象。

2024-01-23 23:00:00 456

原创 C++ 类构造函数 & 析构函数

默认的构造函数没有任何参数,但如果需要,构造函数也可以带有参数。这样在创建对象时就会给对象赋初始值(不用在int处设立set函数赋值),如下面的例子所示。的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。注意看输出结果调用顺序,构造函数先调用。它会在每次删除所创建的对象时执行。它会在每次创建类的新对象时执行。它会在每次创建类的新对象时执行。它会在每次创建类的新对象时执行。是类的一种特殊的成员函数,是类的一种特殊的成员函数,构造函数的名称与类的。析构函数的名称与类的。

2024-01-23 15:33:10 386

原创 C++ 类定义

定义一个类需要使用关键字class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。以下实例我们使用关键字class定义 Box 数据类型,包含了三个成员变量(可理解为属性) length、breadth 和 height:class Boxpublic:// 盒子的长度// 盒子的宽度// 盒子的高度关键字public。

2024-01-22 23:12:51 844

原创 使用迭代器的方式遍历并输出

这是一个常见的用法,用于迭代容器中的元素,执行诸如遍历、搜索或修改等操作。: 这是一个变量名,可以根据需要进行更改。在这里,它被用作指向容器第一个元素的迭代器。: 这是C++11引入的关键字,用于自动推导变量的类型。提供的成员函数,返回一个指向容器第一个元素的迭代器。函数返回的迭代器指向容器的第一个元素。向量中的元素,并输出每个元素。用于获取迭代器当前位置的元素值。被用来自动推导迭代器的类型。在这个版本中,使用了迭代器。向量的第一个元素的位置。这一句创建了一个迭代器。: 这是存储字符串的。

2024-01-22 16:14:01 557

原创 使用iostream iterator

如图所示,直接打一组数字也出不来,必须后面加个非类型的(非int)的值,才能异常输出,这是我一个疑惑的地方,为什么要这么输出呢?输入数字也不排,混合输入也不排(经过实验) 然后我想这代码可能是错的,并没有输出排序后的功能。这个代码,神了,我找了好久类似的,也用gpt跑了,根本跑不出来,只会让人无限输入,写啥也不返回。思考从字符串入手,找到了一个排序字符串,按空格输出的代码,觉得很好。输出结果后发现,其并不需要输入非类型,但是也不排序。我混乱了,难道必须要输入异常才能返回吗。

2024-01-22 15:47:44 861

原创 c++动态内存

在 C++ 中,您可以使用特殊的运算符为给定类型的变量在运行时分配堆内的内存,这会返回所分配的空间地址。这种运算符即运算符。如果您不再需要动态分配的内存空间,可以使用运算符,删除之前由 new 运算符分配的内存。这里不建议使用malloc容易内存泄漏和new的话还会创建一个对象,方便操作。

2024-01-18 19:41:07 887

原创 用冒泡排序谈默认参数应用

我们必须做这样的改变,才可以为它设定默认值0,表示并未指向任何ofstream对象。默认情形下我们不想产生这些信息,但是我们又希望让那些想看到这些信息的用户可以产生他们,甚至指定其输出文件。1.每次调用bubble_sort()都必须传入一个ofstream对象2而且用户无法关闭我们所产生的信息(我个人对第二个是这么理解的,每次都会在文件写)2 默认值只能指定一次,可以在函数声明处,也可以在函数定义处,但切记不能在两个地方都指定。在file scope中定义ofil,这是一个不受欢迎的举动。

2024-01-17 19:08:13 1831

原创 c++传值语义 pass by Reference

当我们以by reference方式将对象作为函数参数传入时,对象本身并不会赋值出另一份-------复制的是对象的地址。其实是将ival(此为rval所代表的对象)的地址赋值给pi。加上const可以让阅读的人更加了解,我们以传址的方式来传递vector,为的是避免复制操作,而不是为了要在函数中对其修改。这里将参数声明为reference有两个理由 1希望得以直接对所传入的对象进行修改 2降低复制大型对象的额外负担。传递的是对象地址,而不是整个对象的副本。所面对reference代表的对象。

2024-01-16 15:36:48 506

原创 c++调用函数传值传参

是的,其实传给swap()的对象被复制了一份,原对象和副本之间没有任何关系。我们可以发现一件事,swap()的确被调用了但是原来的vector仍然没有改变 意思是这样的,她是会每一次去查找符合要求的,但是每次的值固定不变。所以上述步骤 一直是在传值(复制),并没有传参 所以做一下小修改,让其传参,令swap()的参数和传入的实际对象产生关联。,在交换数据时,是直接操作本体,不是复制的值,但是,函数参数的传递依然是传值。传入函数,默认情形下其值会被复制一份,成为参数的局部性定义,这种叫传值。

2024-01-16 11:45:39 907

原创 vmware和ubuntu镜像下载地址

链接:https://pan.baidu.com/s/1i9IC-KnJlrVDbl6SJ5SIKQ?pwd=y2dd 提取码:y2dd。链接:https://pan.baidu.com/s/1imqJVD2dLE1TB6jIrq1-Fg?链接:https://pan.baidu.com/s/1pA-DJiUJapVFShnP_omRmA?再把这个免费发布出来,有一个奸商还卖9.9,真是搞笑。把自己当作者了是吧?这个是我本人下的vmware17 密钥可用。里面有书还有每章节代码。

2024-01-14 03:29:46 653

原创 ubuntu连接xshell怎么连接

太久没打开Ubuntu可能输入命令查不到IP地址,解决办法也比较简单,首先第一步 确定自己能不能进入管理员root权限(输入命令su),如果没有的话得重新配置,如下图 这是因为当前。那我也试了五六种办法都不行,准备去重置静态网络设备了,但突然想到修改网络连接方式怎么杨?如图所示,改为桥接模式就好,这样就能显示ip了。在网上找了好多办法都不行。,所以需要我们重新设定。

2024-01-14 03:21:44 540

原创 linux安装系统遇到的问题

这两天打算攻克下来网络编程,发现这也确实是很重要的一个东西,但我就奇了怪了,老师就压根没提,反正留在我印象的就一个tcp/ip七层网络。5使用 chroot 命令切换系统,chroot /sysroot/ 命令后面的 /sysroot/ 代表当前的 CentOS 7 操作系统。2.进入编辑界面(其实是 CentOS 7 的启动选项),按向下方向键定位到“linux16”开头的一行,再按向右方向键找到“ro”连接centos7遇到的问题CentOS7忘记密码怎么办,下了一个vmware,没有密码打开很尴尬。

2024-01-14 03:16:18 635

原创 指针 精讲

两个等于 int *p=a;(创建的指针直接指向a数据地址)特点:指针指向(地址)可以修改,但指针指向指向的值不可以修改。接下来讲常量指针和指针常量 看const位置。就名字就能看出 哪个放到前面哪个就更重要。特点:指针指向(地址)不可以修改,指针指向指向的值可以修改。简单说:指针就是一个地址 可以将其理解为指针定义。指针前加*代表解引用,指到指针指向内存的数据。p保存了a的地址 可知p是指针。

2024-01-11 15:32:24 336

原创 qt打包完整详细过程 包你成功

我想是不是和开关机有关系,我关了,想系统自动清除一下,打开后还是不行,我有点崩溃。我当时第一反应绝对是我大小写错误了,或者哪一步没跟上,但试了好几次,我开始思考,不对,绝对不对。然后我打开每一个都有windeployqt.exe,别说系统了,我都不知道用哪个,然后找了一个最像视频的那个,打开了,按照第一位博主指定路径,运行,再打开。找问题找了一个多小时,不停调试,还修改文件路径,配置路径,开机关机,最后终于做出来了,得出来了一个结论 我绝对是天才。这里放上飞机大战资源,友情提示,多看那个指导文件。

2024-01-10 01:14:08 448

原创 Qt连接数据库(内含完整安装包)

原因就是没有那个mysql.llb,我开始把navicat中的llb文件都拷贝过去了,但发现没用,所以开始在网上找。QString sql="insert into people(id,name,age) values(3,'张三',23)";这是案例,我当时自己写了两个,不报错,但是也插入不进去,我思考是数据类型的问题,所也很幸运,他也刚好放出来了。提示:如果你不知道应该下哪个,这里有四个,挨个复制一遍就好,我很幸运,复制第一个32就好了。找了两个类似的,没用,必须一摸一样,所以幸亏找到了两个。

2024-01-08 23:34:33 426

原创 qt第三天快速回顾

在一篇写的很详细 大意回顾一下 先创一个新的qt设计页面 smallWidget.ui 将两组件放到一个框架中,再去widget.ui中提升,使得其可以用smallwidget属性 (因为直接对widget中组价框架操作不现实) widget运行就有了smallWidget属性然后在smallwiidget.h和smallwidget.cpp中进行操作 记住在封装过程中都是对其操作的。

2024-01-07 22:01:56 590

原创 qt鼠标常用事件

然后添加新文件mylabel.h和mylabel.cpp,base class选择继承为QWidget,因为选项没有QlABEL,一会在文件中将函数修改即可。两个红色代码 第一个是按下左键才会实现效果 第二个是会显示在QLable的坐标,它是以左上角为(0,0)基础坐标,经过实现,可以一直出去,坐标可以为负。QString str=QString("鼠标按下了,x=%1,y=%2").arg(ev->x()).arg(ev->y())//如果是鼠标左键按下,才打印下面的信息。

2024-01-07 14:12:46 695

原创 qt自定义控件的封装

接下来在smallwidget.cpp中进行代码实现 刚听了一句话很有道理,逻辑业务的内容要用代码的实现。想把两个不相关的组件封装在一块,直接用ui不行,所以先新添加了qt设计师页面,新添加了一个SmallWidget *ui。取两个空白的widget,提升 效果如下。在主页面widget.ui中提升smallwidget.ui。在smallwidget.ui中添加了一个,缩放至正常大小。存在两个同名函数(重载),所以需要函数指针指向t那个。

2024-01-06 22:02:48 559

原创 qt三大控件

QTreeWidgetItem * liItem=new QTreeWidgetItem(QStringList()

2024-01-06 18:06:30 1189

原创 对话框QDialog 布局管理器

Qt 支持模态对话框和非模态对话框。

2024-01-06 15:50:34 843

原创 QMainWindows_状态栏_铆接部件_中心部件

一个系统给的set 核心部件是new多个new的add成品。

2024-01-05 15:56:56 509

原创 QMainWindow_菜单栏和工具栏创建

1.1.1 用系统提供的方法有这个栏创建菜单栏1.1.2 setMenuBar(bar)设置到窗口中1.1.3QMenu * fileMenu=bar->addMenu("") 添加菜单1.1.4QAction * newAction=fileMenu->addAction("新建");1.1.5添加分割线和添加子菜单可以忽略 不是重点代码。

2024-01-05 14:59:47 765

原创 qt信号和槽

Qt是一个跨平台的C++图形用户界面应用框架 91年奇趣科技开发pro工程文件介绍.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件安装和创建文件方法在上一章已经解决,接下来就是说具体知识总结其他知识:命名规范运行 ctrl+r编译 ctrl+b注释 ctrl+/字体缩放 ctrl+鼠标滚轮整行移动 ctrl+shift+上下箭头自动对齐 ctrl+i同名的h和cpp切换 F4查找关键字 ctrl+f。

2024-01-05 00:44:50 1287

原创 构造函数和析构函数

学Qt时候涉及到了一个知识点,析构函数。讲到树,树的创建是由上到下,树的内存释放是由下到上,然后用一个析构函数做表示,听完后很懵,不知道说析构函数到底是什么,真有些点记不清楚了,所以今天来复习复习。

2024-01-03 18:26:44 352

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除