摘要:
1. 前言 由于后面还有很多题型要写,贪心算法目前可能就到此为止了,上一篇博客的地址为 LeetCode解题记录(贪心算法)(一) 下面正式开始我们的刷题之旅 2. 贪心 763. 划分字母区间(中等) 题目链接 思路 想切割,要有首尾两个指针,确定了结尾指针,就能确定下一个切割的开始指针。 遍历字 阅读全文
摘要:
1. Qt5位置相关函数 Q提供了很多关于获取窗体位置及显示区域大小的函数,如x()、y()和pos()、rect()、size()、geometry()等,统称为“位置相关函数”或“位置函数”。几种主要位置函数及其之间的区别如图所示。 具体的相关函数的用法,会在后面的实例中进行讲解 2. Qt5基 阅读全文
摘要:
1. 文件目录浏览器 直接在main.cpp文件中添加下列代码 #include "mainwindow.h" #include <QApplication> #include <QAbstractItemModel> #include <QAbstractItemView> #include <Q 阅读全文
摘要:
在C++中内存分为5个区,分别是堆、栈、自由存储区、全局/静态存储区和常量存储区 **堆(heap):**分配方式类似于链表;一般由程序员分配和释放,若程序员不释放,OS可能回收。分配方法:malloc、new ;释放方法:free delete **栈(heap):**编译器自动分配释放,存放函数 阅读全文
摘要:
1. C++运算符重载介绍 C ++ 中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C ++ 中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C ++ 阅读全文
摘要:
1. 问题 “iterator”: 类型 从属名称的使用必须以“typename”为前缀 今天将我VS2017 的代码移植到VS2019上面时,产生了上面的错误,产生错误的代码片段如下 vector<vector<T>>::iterator it = r.begin() + row; r.erase 阅读全文
摘要:
1. 介绍 在 C++ 中没有垃圾回收机制,必须自己释放分配的内存,否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针(smart pointer)。智能指针是存储指向动态分配(堆)对象指针的类,用于生存期的控制,能够确保在离开指针所在作用域时,自动地销毁动态分配的对象,防止内存泄露。智能 阅读全文
摘要:
1. 前言 这次花了大约4天的时间,去做了这个文本编辑器Plus,这个编辑器主要是为了让我去熟悉一些常用的操作,以及信号槽的使用,我上次做的简易版文本编辑器地址:Qt5实现文本编辑器 2. 主界面展示 界面演示了部分功能 3. 功能介绍 3.1 文件操作功能 新建文件 打开文件 打印文件 打印图片 阅读全文
摘要:
1. 前言 目前得到一本不错的算法书籍,页数不多,挺符合我的需要,于是正好借这个机会来好好的系统的刷一下算法题,一来呢,是可以给部分同学提供解题思路,和一些自己的思考,二来呢,我也可以在需要复习的时候,通过博客来回顾自己,废话不多说,开始! 目前的规划 2. 算法解释 顾名思义,贪心算法或贪心思想采 阅读全文
摘要:
1. 功能介绍 老规矩,我们直接上截图 这是主界面 文件菜单界面 编辑菜单界面 设置菜单界面 关于菜单界面 2. 功能演示 设置字体颜色 设置字体大小 点击关于菜单 点击关于Qt菜单 会自动跳转到Qt的官网 点击图片转PDF 打开文件等对话框 3. 代码 我们直接上代码 aboutwidget.h 阅读全文
摘要:
1. 前言 今天在做一个文件编辑器,然后发现读取txt文件的时候,中文的显示乱码,然后在网上查了一些方法,没用,自己摸索了一下,找出了一个办法 2. 解决办法 QTextStream *in = new QTextStream(&file); in->setCodec("UTF-8"); QStri 阅读全文
摘要:
最近准备尝试用VS去开发Qt项目,但是我在ui文件中修改的控件,在vs里面找不到,于是上网浏览解决办法,总结如下 1. 保存Ui文件 在拖拽控件之后,Ctrl+S 2. 重新编译ui文件 3. 右键项目,重新扫描解决方案 这样就可以啦,话说真的好麻烦啊,各位大佬们有没有其他更好的解决办法?在评论区说 阅读全文
摘要:
1. 前言 最近刚刚写了一个小项目,并且打包了给室友玩,说实话,挺有成就感的,但是在写这个项目的过程中,我也发现了自己的问题,比如什么时候用指针,指针什么时候释放,以及代码的性能如何优化等,因此在这里反思一下自己,顺便做一下以后的规划 项目的话,由于一些原因,不能公开,等过一段时间我会发出来与大家分 阅读全文
摘要:
因为最近写了一个程序,然后想着能给室友玩耍,就研究了一下如何打包,写这篇博客记录一下 1. 首先获得程序的Release版本 就是点击这个Release,然后构建一遍 2. 进入构建的release文件夹找到对应的exe文件 3. 将这个文件放入单独的文件夹 然后进入windows的控制台 win+ 阅读全文
摘要:
1. 效果 先看看效果图 这是传输文件完成的界面 客户端 服务端 2. 知识准备 其实文件传输和聊天室十分相似,只不过一个传输的是文字,一个传输的是文件,而这方面的知识,我已经在前面的博客写过了,不了解的同学可以去看一下 C++网络编程 Qt实现网络聊天室(客户端,服务端) 还有多线程相关的知识 Q 阅读全文
摘要:
1. 关于为什么关闭线程,释放资源的时候要先quit(),然后wait() quit()函数是用来停止QThread的,但是由于Qt本身是事件循环机制,所以在调用完quit()后,QThread可能还没有完全停止,此时如果执行delete channel,程序就会报错。在执行quit()后,调用wa 阅读全文
摘要:
今天遇到了一个错误 详细信息如下 sendfile.cpp:3:39: error: type 'QObject' is not a direct or virtual base of 'SendFile' 在QtCreator中报错 很迷惑,为啥不能这样写 SendFile是我自己定义的一个类 问 阅读全文
摘要:
前几天学习了Qt的网络通信,特写这篇博客来记录一下 阅读全文
摘要:
昨天学习了一些C++网络编程的一些相关知识,今天回忆复习一下 1. 相关知识 1.1 局域网和广域网 局域网:局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。 广域网:又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。 IP(Intern 阅读全文
摘要:
1. 字节序的理解 计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。 举例来说,数值0x1234使用两个字节储存:高位字节是0x12,低位字节是0x34。 就比如你写一个数字,比如128,那么8是个位数,自然是低位字节 大端字节序:高位字 阅读全文