自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (31)
  • 问答 (1)
  • 收藏
  • 关注

原创 re:从零开始的Qt世界冒险生活

工作原因,要使用Qt进行跨平台的开发任务,故开此博客记录一下。

2020-07-06 14:06:17 1137

原创 QTreeWidget、QListWidget点击图标变蓝问题

问题出在QICon上,重新设置其select状态的样式即可。

2023-09-20 10:21:03 167

原创 Qt-windows-检测USB设备插拔,获取PID | VID

Watch类,声明一个usbDevice结构体与观测类。

2023-04-06 15:15:08 1030 1

原创 bilibili面经

全程90min,面试官人很好,我全程紧张鬼畜抖动自我介绍1.说一下c++的内存布局2.说一下面向对象的三大特性3.websocket长连接是怎么实现的4.vector怎样申请新内存会溢出吗如何重新设置内存大小介绍一下List5.final的作用,答不能被继承追问还有吗,答不知道6.右值引用如何实现完美转发7.map的底层实现原理 map如何从大到小存储8.unorder_map的底层实现原理答哈希表,追问如何避免hash冲突......

2022-06-30 11:31:57 328 2

原创 std::function和std::bind的使用

1.std::functionstd::function是一个可调用对象包装器,是一个类模板,可以容纳除了类成员函数指针之外的所有可调用对象,它可以用统一的方式处理函数、函数对象、函数指针,并允许保存和延迟它们的执行。#include <iostream>#include <functional>using namespace std;typedef std::function<int(int, int)> fun;//普通函数int add(i

2021-12-29 16:53:00 4076

原创 静态库与动态库的区别

先回忆一下将一个程序编译成可执行程序的步骤传送门静态链接是指将多个目标文件合并为一个可执行文件,直观感觉就是将所有目标文件的段合并。需要注意的是可执行文件与目标文件的结构基本一致,不同的是是否“可执行”。静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。静态库的缺点:程序体积膨胀程序升级改动很小也要更新整个程序Tips:多个程序只调用一个动态库,英文动态库在内存中

2021-12-12 22:46:45 224

原创 编译一个.cpp文件的过程

图片来自bilibili 传送门首先我们来看helloworld.cpp文件的内容#include <iostream>using namespace std;int main(){ cout << "hello world!" <<endl; return 0;}接下来,通过一条简单的命令即可完成对源代码的编译,生成可执行程序helloworldgcc -o helloworld helloworld.cpp通过这条命令,编译器gcc就会将

2021-12-12 22:23:15 6562

原创 c++中的explict和default关键字

1. default 关键字class Foo{public:Foo() = default; Foo(int a): m_value(a){}int m_value;};int main(){ Foo f; return 0;}在main函数中,我们通过类的默认构造函数来实例化一个Foo类型的对象f,若没有Foo() = default;关键字,因为,如果我们自己创建了构造函数,编译器就不会提供默认的构造函数,所以当我们创建了Foo(int a): m_value

2021-12-12 19:30:39 880

原创 C++中四种强制转换的用法

C++中四种强制转换的用法1. static_cast基本数据类型之间的转换,用法TypeName res = static_cast<TypeName>(Value)int a = 10;auto res = static_cast<double>(a) / 4.0;static_cast用于上行转换(派生类转换为基类)时是安全的,但是由于没有运行时类型检查,所以在下行转换时是不侵权的。将空指针转换成目标类型的指针。将任何类型的表达式转换成void类

2021-12-12 18:24:38 1462

原创 VScode安装与搭建c++编译环境

目录1 如何在Win10下安装MinGw编译器2 配置环境变量并验证3 下载安装Vscode4 在VSCode中安装拓展5 安装C/C++6 运行C++程序1. 如何在Win10下安装MinGw编译器首先我们要安装c++编译器,最符合要求的就是 MinGw ,首先我们前往MinGw下载地址下载最新版本的MinGw并安装。2. 配置环境变量并验证 安装好MinGW后,将MinGW下bin目录添加到环境变量的Path中。配置好环境变量后在cmd中输入gcc --version来查看环

2021-12-12 02:22:33 844

原创 剑指Offer 32 从上到下打印二叉树(三)

原地址注意:1.边界判断2.vector插入vec.insert(vec.begin(),TargetVec.rbegin(),TargetVec.rend());思路和层序遍历二叉树一样,但是每次遍历一层时判断一下flagclass Solution {public: vector<vector<int>> levelOrder(TreeNode* root) {if(root == nullptr) return vector<v.

2021-12-07 09:58:09 3130

原创 剑指Offer04 二维数组中的查找

原地址思路:因为是递增的二维数组,所以从左下角开始搜索,当target>cur时,row++;target<cur时,col--;注意:比较时不能连续if判断,因为会影响 if(matrix[col][row] == target)return true; if(matrix[col][row] < target)row++; //会影响下面的判断 if(matrix[col][row] > target)col--;clas

2021-12-06 09:44:42 63

原创 剑指Offer 层序遍历二叉树

原地址流程:特例处理: 当根节点为空,则返回空列表 [] ;初始化: 打印结果列表 res = [] ,包含根节点的队列 queue = [root] ;BFS 循环: 当队列 queue 为空时跳出;新建一个临时列表 tmp ,用于存储当前层打印结果;当前层打印循环: 循环次数为当前层节点数(即队列 queue 长度);出队: 队首元素出队,记为 node;打印: 将 node.val 添加至 tmp 尾部;添加子节点: 若 node 的左(右)子节点不为空,则将左(右)子节点加入

2021-12-05 23:48:45 289

原创 剑指Offer09 回文数

原地址1.很傻的方法,先翻转在比较,用long接收class Solution {public: bool isPalindrome(int x) { if(x < 0) return false; long temp = 0; int n = x; while(n) { temp = temp * 10 + n % 10; n /= 10; }

2021-12-04 22:56:21 70

原创 leetcode 07 整数反转

原地址x = x %10; x /= 10;这两行代码是取每一位数字的基本操作了,问题是边界问题,这次用了C++的内置宏 INT_MAX和 INT_MIN来判断边界class Solution {public: int reverse(int x) { long n = 0; while(x) { n = n *10 + x % 10; x /= 10; } ...

2021-12-04 22:32:28 3613

原创 剑指Offer 58 左旋转字符串

原地址class Solution {public: string reverseLeftWords(string s, int n) { if(n == 0) return s; if(s.empty())return s; string left,right; for(auto c:s) { if(n > 0){ left.push_back(c);

2021-12-04 22:21:44 174

原创 剑指Offer05 替换空格

原地址class Solution {public: string replaceSpace(string s) { //字符数组 string array; //存储结果 for(auto & c : s) { if(c == ' ') { array.push_back('%'); array.push_back('2'); array.push_back(

2021-12-04 22:12:35 164

原创 剑指Offer 35 复杂链表的复制

原地址方法:回溯 + 哈希表对于当前节点,我们首先要进行拷贝,然后我们进行「当前节点的后继节点」和「当前节点的随机指针指向的节点」拷贝,拷贝完成后将创建的新节点的指针返回,即可完成当前节点的两指针的赋值。class Solution {public: Node* copyRandomList(Node* head) { if(head == nullptr) return nullptr; unordered_map<Node*,Node*&g.

2021-12-04 22:06:13 409

原创 剑指offet 24 翻转链表

原地址翻转很容易想到用栈,注意每次新建一个节点class Solution {public: ListNode* reverseList(ListNode* head) { if(head == nullptr) return nullptr; stack<int>stk1; ListNode * p = head; while(p){ stk1.push(p->val);

2021-12-03 10:26:08 328

原创 剑指offer 06 从尾到头打印链表

原地址反迭代器 栈1.很容易想到的方法,从头遍历一遍,然后再返回vec的反迭代器class Solution {public: vector<int> reversePrint(ListNode* head) { if(head == nullptr)return vector<int>(); vector<int>vec; ListNode * p = head; while(.

2021-12-03 09:13:44 550

原创 链表 判断链表是否有环

1.方法1,hash表我们遍历链表中的每个节点,并将它记录下来;一旦遇到了此前遍历过的节点,就可以判定链表中存在环。class Solution {public: ListNode *detectCycle(ListNode *head) { unordered_set<ListNode *> visited; while (head != nullptr) { if (visited.count(head)) {

2021-12-02 21:07:24 75

原创 链表 判断链表是不是回文链表

原地址思路:用栈和队列遍历一遍,然后再比较class Solution {public: bool isPalindrome(ListNode* head) { queue<int> que; stack<int> sta; ListNode * p = head; while(p) { que.push(p->val); sta.push

2021-12-02 20:42:05 848

原创 链表 - 判断两个链表是否有交点

原地址解题思路定义双指针,分别指向A和B的头部。如果链表一样长且有交点,则第一次遍历就能找到相同交点,返回如果不一样长且有交点,则指针遍历一条链表后,遍历另一条链表如:A链表的指针遍历完A了,下一步继续遍历B链表。B链表的指针遍历完B了,下一步继续遍历A链表。如图所示,由于a+c+b=b+c+a,所以两个指针在第二次遍历的时候,一定会在相交节点处相遇。如果没有交点,则第二次遍历结束都是null,遍历结束,返回nulla+b=b+a,最终一定都会指向null。..

2021-12-02 20:23:59 533

原创 剑指offer30 包含 min 函数的栈

思路:用一个辅助栈来放最小值,push时,要是比辅助栈的top还小就入辅助栈,否则辅助栈再添加一次栈顶元素class MinStack {public: /** initialize your data structure here. */ MinStack() { } void push(int x) { m_stack.push(x); if(m_tempStack.size()){ if(m_tempStack

2021-12-02 19:08:41 164

原创 c++内存分配

一、程序的内存分配一个由c/c++编译的程序占用的内存分为以下几个部分文字常量区、全局/静态存储区、堆、栈一个程序的3个基本段:.text段、.data段、.bss段.text段在内存中是只读的,.data段与.bss段是可读写的。.bss段通常是用来存放 未初始化的全局变量和静态变量.text段是放代码程序的,也有可能包含一些只读的常数变量,例如字符串常量。编译时确定。.data段存放数据static data指那些初始化过的非const的全局.

2021-11-30 11:14:57 318

原创 Qt- 照片墙小项目

循环播放的照片墙,可在触屏的电脑上手动滑动点击。

2021-11-24 14:28:49 304

原创 Qt-遮罩窗口

当我们想弹出一个提示框时,总是想突出显示他,这时候一个可行的解决方法是增加遮罩。效果如下我们想点击导出按钮后,导出对话框可以突出显示,在响应导出的槽函数中实现connect(exportDlg,&QDialog::clicked,this,[=](){ QScopedPointer<QWidget>shadow(new QWidget(this)); shadow->setFixedSize(size()); QPalette pal(shadow-&g.

2021-11-24 09:35:18 1021

原创 Qt SingleApplication实现

#pragma once#include <QObject>#include <QApplication>#include <QtNetwork/QLocalServer>#include <QWidget>class SingleApp : public QApplication{ Q_OBJECTpublic: explicit SingleApp(int &argc, char **argv); bool isRunni.

2021-11-22 13:46:13 577

原创 bilibili二面面经

1.什么是移动构造函数?2.c++11说一说你知道的3.构造函数初始化顺序与调用顺序4.说一下四种智能指针5.weak_ptr如何解除shared_ptr的资源互相占用,手写下来6.前置声明7.c++文件到二进制可执行文件的步骤8.map和unordered_map的底层原理9.avl树、红黑树、B+树10输入www.bilibili.com之后发生了什么11DNS解析原理12c++内存布局,出了几道sizeof的题13四种强转的作用,说一下为什么14Qt

2021-11-22 11:11:54 573

原创 剑指Offer 判断二叉树是否对称

递归判断左子树的左孩子是否等于右子树的右孩子,左子树的右孩子是否等于右子树的左孩子。注意边界条件class Solution {public: bool isSymmetric(TreeNode* root) { if(root == nullptr) return true; return dfs(root->left,root->right); } bool dfs(TreeNode * r1,Tre

2021-11-18 02:36:57 54

原创 剑指offer 二叉树镜像

递归交换root->left与 root->rightclass Solution {public: TreeNode* mirrorTree(TreeNode* root) { if(!root)return nullptr; swap(root->left,root->right); mirrorTree(root->left); mirrorTree(root->right); .

2021-11-18 02:27:53 159

原创 剑指offer 从尾到头打印链表

思路:1.用临时List指针指向链表2.用vector装val,并返回vector<int>(vec.rbegin(),vec.rend());class Solution {public: vector<int> reversePrint(ListNode* head) { auto tempPtr = head; vector<int>vec; if(tempPtr == nullptr)re.

2021-11-18 02:22:18 149

原创 剑指offer 从上到下打印二叉树

思路,将二叉树从根节点入队列1.循环出队列,并加到res中2.出队列的节点的左右节点再入队列3.直到队列为空class Solution {public: vector<int> levelOrder(TreeNode* root) { vector<int>res; if(!root) return res; queue<TreeNode*>que; que.push(roo

2021-11-18 02:12:53 49

转载 智力题-面试

程序员面试必看30道智力题_2020GetGoodOffer的博客-CSDN博客_程序员面试智力题二进制问题金条问题有个商人雇用了一位手艺高超的工匠了为他做一个精致产品,工作一星期七天的代价是一条金条。商人手头上有一条金条,刚好有可以付工匠一星期的工钱。但工匠要求工钱要按每天来付。虽然他并不急着用钱,每天有钱进账,老人心里总是踏实一些。但商人家中有个规矩,金条每星期只能切二刀。后来商人想出以了个切割金条的办法,满足了工匠的要求。你知道商人是怎么切割金条才能满足工匠的吗?切成1、2、4.

2021-11-18 01:26:37 198

原创 智力题:老鼠和毒药

有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?解决方法步骤一:给这1000瓶标号:1,2,3,4,5,6…1000,并分别转化为2进制 1:0000000001 2:0000000010 3:0000000011 4:0000000100 ......1000:1111101000步骤二:让第i只老鼠,喝掉所有二进制表...

2021-11-18 01:02:47 559

原创 智力题-最少次数获取摔破小球的楼层

100层楼,球可能在某一层摔坏,问每次用2个球,最坏情况下几次测试可以找出该楼层先出答案,14 投掷次数分布不均。按最坏情况估计,这种方法就多做了几次。为了使最坏情况的投掷数最小,我们希望无论临界段在哪里,总的投掷数都不变,也就是说投掷数均匀分布。 接下来的解决方案就很容易想出了:既然第一步(确定临界段)的投掷数增加不可避免,我们就让第二步(确定临界层)的投掷数随着第一步的次数增加而减少。第一步的投掷数是一次一次增加的,那就让第二步的投掷数一次一次减少。假设第一次投掷的层数是f,转...

2021-11-18 00:49:38 468

原创 智力题-天平问题

n个石头,里面有一个是次品,次品比正常的零件轻,现在有一个天平,请问最少称几次一定可以知道哪个零件是次品?样本总数量一开始为n,分成k1,k1,k2,三堆(有两堆重量一样);一次后样品总数变成了k1或者k2要保证一定 k = max{k1,k2}所以尽量三等分8个球,一般人会4-4 2-2 1-1分三次,其实只需要两次分成3 3 2让3 3称重,公式向上取整...

2021-11-18 00:07:46 546

原创 剑指offer 18 删除链表的节点

链接两个指针同时向右,cur->val = val; pre->next = cur->next;/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ...

2021-11-17 23:22:02 184

原创 剑指offer 53 在排序数组中查找数字

链接第一种方法class Solution {public: int search(vector<int>& nums, int target) { int sum = 0; for(auto item : nums) if(item == target) sum++; return sum; }};第二种,二分搜索class Solution {public:

2021-11-17 22:51:59 163

原创 剑指offer09 用两个栈实现队列

分析:栈是先进后出,队列是从右到左先进先出class CQueue {public: CQueue() { } void appendTail(int value) { mainStack.push(value); } int deleteHead() { int res = -1; if(mainStack.size()) { while(!mainStack.empty()){

2021-11-17 21:45:08 161

linux打包基础教学(2).doc

linux打包规范

2021-12-09

MiPhotoWall.zip

博客 https://blog.csdn.net/yonggandess/article/details/121514711

2021-11-24

untitled1.tar.gz

linux下全局检测按键-qt版本

2021-11-10

iflyTranslate.zip

Qt调用讯飞翻译的demo,替换appid appsecret appkey即可

2021-10-29

Q_D_Pointer.zip

https://blog.csdn.net/yonggandess/article/details/115628601,Qt中q_d指针的使用小demo

2021-04-19

qtwinmigrate.zip

支持QT5的qtwinmigrate,使得qt的链接库可以在mfc或者其他框架中使用qt生成的基于qt事件循环的动态链接库,qtdll目录下的文件可以直接运行,稍微改动即可

2020-09-17

MiRichText.zip

详情见博客https://blog.csdn.net/yonggandess/article/details/108651462

2020-09-17

untitled2.zip

enter确认截图,esc取消截图,很简单的实现截图的demo,详情见https://blog.csdn.net/yonggandess/article/details/108530005

2020-09-11

AbstractFactory.zip

抽象工厂模式 博客:https://blog.csdn.net/yonggandess/article/details/107414280

2020-07-20

simple_factory.zip

工厂模式 ,见博客https://blog.csdn.net/yonggandess/article/details/107400110

2020-07-17

qqMusicGeci.zip

功能完全模仿qq音乐的歌词界面。博客https://blog.csdn.net/yonggandess/article/details/107321238

2020-07-13

wiggly歌词.zip

Qt做出的模仿QQ音乐歌词效果的简单Demo 博客: https://blog.csdn.net/yonggandess/article/details/107310702

2020-07-13

wiggly.zip

博客地址https://blog.csdn.net/yonggandess/article/details/107305953 动态歌词效果

2020-07-12

ThreadQueue.zip

Qt 线程任务队列demo,见博客 https://blog.csdn.net/yonggandess/article/details/107227435

2020-07-09

qt主题资源,dark风格

在github上,我们搜索“Qt Creator theme”等关键字,很容易能找到一些比较好看的主题~。 这里,我先给出几个我在github等网站上收集到的几个挺好看的样式,需要的可以打开连接看一下: (1)IntellJ-Dracula: https://github.com/mervick/Qt-Creator-Darcula (2)Vim-Wombat:https://github.com/alexpana/qt-creator-wombat-theme (3)solarized:https://github.com/curonian/qtcreator-solarized (4)monokai:https://github.com/airamrguez/QtCreatorTheme#screenshot-example

2020-04-02

baiduTranslation.zip

qt调用百度翻译api,达到中英文的互相转换,通过修改getUrl()函数里的appid appkey和你要翻译的字符串q来达到使用此代码的目的。具体需求请参照百度开放平台的文档进行修改

2019-12-27

QGridLayout.rar

qt模仿的qq简单的登录对话框,主要是记录了框架的使用与布局,没有特别的技巧,具体代码在mainwindows里

2019-11-20

动态链接库怎么生成和使用.doc

动态链接库的使用与导出,以及如何用dump看一个dll有哪些接口函数。以及怎样将自己创建的dll给别人使用

2019-06-13

宿舍管理系统.rar

用的MFC写的一个宿舍管理系统。emmm感觉应付课程设计是足够了

2019-05-10

wordText.rar

VS2013调用微软的COM接口控制已经打开的WORD并写入文字,主要是怎么获得已经打开的office的程序的application对象,程序有bug,已解决是KillTime的问题,大家改一下就好了。 HWND hWnd = AfxGetMainWnd()->m_hWnd; KillTimer(hWnd, TIME_ID);

2019-05-10

FileTransfers.rar

采用UDP传输文件,并实时显示传输速率。没有加入丢包重发机制

2019-05-10

Mitask.rar

一款用vs2013写的后台进程运行时间的MFC软件,会将进程的运行时间(从打开到监控软件关闭后运行的总时间)写入到txt文件中/

2019-05-10

duilib源码和demo

著名的开源项目duilib,里面有QQ的demo和360de demo等等。

2019-04-16

c++Primer.pdf蓝光超清/doge

经典中的经典,c++primer,可编辑,有目录。有我自己的高亮笔记。希望大家可以更好的学习

2019-04-08

ccleaner软件

深度卸载软件,清理注册表等等功能,是一款很nice的软件,安装包也很小

2018-11-07

2018考研计算机学科专业基础408综合考试大纲

大家考研加油,下载资源的人一定进复试。天道酬勤,加油cser

2018-03-16

2012计算机考研408统考真题及答案

考研加油!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2018-02-25

2010计算机考研408统考真题

考研加油!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2018-02-25

2009计算机考研408统考真题及答案

考研真题,学子们加油考研加油!!!!!!!!!!!!!

2018-02-25

tomcat9.0最新版

解压直接安装,然后配置环境变量,将路径加到PATH即可,然后在命令行里测试,操作码startuo,打开的情况下,输入浏览器地址http:\\localhost:8080 如果出现Tomcat的界面则配置成功

2018-02-25

蓝桥杯真题

蓝桥杯的真题资源与详细解答,并有java和c两种版本以及决赛的试题。喜欢学习算法的童鞋们可以下载

2018-02-25

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

TA关注的人

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