自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (8)
  • 收藏
  • 关注

原创 C++高并发网络架构与实现——第六篇

学会使用C++实现从1个用户连接到10000个用户链接,从每秒1个用户/1个数据包,到1万用户/1百万个数据包,最终实现高并发服务器

2020-12-18 23:45:10 4868 27

原创 C++11多线程的原子操作

我们知道当一个程序创建多线程运行时,多个线程之间会互相抢占。所以即使此时运行最简单的a++;也可能会发生线程x的a++还没运行完,另一个线程y可能就抢占运行了,所以此时x线程a++就发生了错误。下面就进行不同情况下的运行情况和时间消耗对比。一,不加限制运行代码:#include<iostream>#include<thread>using namespace std;const int tcount = 4;int sum = 0;void mythr

2020-12-16 10:29:57 477

原创 剑指Offer 系列 剑指 Offer 59 - I:滑动窗口的最大值

题目描述:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 ...

2020-12-15 09:18:09 134

原创 C++高并发网络架构与实现——第五篇

学会使用C++实现从1个用户连接到10000个用户链接,从每秒1个用户/1个数据包,到1万用户/1百万个数据包,最终实现高并发服务器

2020-12-15 00:16:44 3331 17

原创 剑指Offer 系列 剑指 Offer 42: 连续子数组的最大和

题目描述:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。解题思路:主题思路就是初始化两个值啊a,b,a为遍历过程中连续相加的值,b即为将要返回的最大连续和,遍历过程中与a比较因为遍历的时候,a在遍历过程中与每一个遍历的值都相加,所以当a为负数时需要初始化零。...

2020-12-09 10:44:30 109

原创 剑指Offer 系列 剑指 Offer 39:数组中出现次数超过一半的数字

题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2解题思路:新建一个map数组,然后遍历整个vector数组,然后通过键值的方式存到map数组中,如果vextor的值相同,则对应map数组的键相同,则值加一,即数量加一。最后再遍历map数组中的second,即vexctor中每个数的数量。当该second值大.

2020-12-09 10:03:05 105

原创 剑指Offer 系列 剑指 Offer 04: 二维数组中的查找

题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 ta...

2020-12-09 08:42:21 112

原创 剑指Offer 系列 剑指 Offer 35:复杂链表的复制:很巧妙的一道题,强烈推荐

题目描述:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:[[1,1],[2,1]

2020-12-07 17:48:23 241

原创 剑指Offer 系列 剑指 Offer 18:删除链表的节点

题目描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为1的第三个节点,那么在调用了你的函数之...

2020-12-07 15:17:20 182

原创 剑指Offer 系列 剑指 Offer 62:圆圈中最后剩下的数字;再战约瑟夫环问题

题目描述:0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出:3示例 2:输入: n = 10, m = 17输出:2解题思路:根据规律反推的结果(从leetcode偷来的图片):首先需..

2020-12-07 14:48:54 419

原创 剑指Offer 系列 剑指 Offer 24: 反转链表

题目描述:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路分析:就是最简单的方法,遍历链表中的每个节点,然后使用头插法插入新的链表中,最后返回新的链表重点代码(也就是头插法变一下形):head3=head->next; //先将需要反转的链表x从下一个节点保存...

2020-12-07 11:16:31 198

原创 剑指Offer 系列 剑指 Offer 22:链表中倒数第k个节点

题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.分析:可能比较菜,第一思路都是比较笨的方法:先算出链表的总长度sum 然后链表头节点往后移动sum-k;代码:

2020-12-07 10:57:46 206

原创 剑指Offer 系列 剑指 Offer 06:从尾到头打印链表

题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例:输入:head = [1,3,2]输出:[2,3,1]我的思路:使用递归的方法,一直递归到链表为空的时候,然后每一次都将这次递归的节点数值存到数组中,再返回。代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * List

2020-12-07 09:54:27 236

原创 剑指Offer 系列 剑指 Offer 52: 两个链表的第一个公共节点

题目描述:入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,.

2020-12-07 09:02:09 195

原创 剑指Offer 系列 剑指 Offer 25:合并两个有序链表

题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路:因为两个链表都是有序的,所以直接循环判断两个链表中某个节点的值,哪一个小了哪一个往后移一位,直到某一个链表到结束。 将剩下的未判断结束的链表接在后面就行了。代码:class Solution {public: ..

2020-12-07 08:22:34 192

原创 QT:实现连接数据库,并进行简单的增删改查等功能

实现结果:这个小的程序实现主要分为两个三个部分:添加一个connection.h文件,实现数据库的连接 在ui界面拖入相应的控件,构件图形化界面 在mainwindow.cpp中现实相应的代码操作(需要注意函数都是按键的槽的clicked()函数)在实现项目前,首先需要在.pro中添加:QT += sql一,connection.h代码实现#ifndef CONNECTION_H#define CONNECTION_H#include <QMess

2020-12-07 07:42:00 5183 7

原创 C++继承时,关于构造函数以及为什么父类析构函数要定义为为虚析构函数的讲解

这个问题主要是由于子类继承父类时,构造函数和析构函数的调用问题产生的结果:首先我们看构造原则:如果子类没有定义构造方法,则调用父类的无参数的构造方法。 如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数,则会调用父类的默认无参构造函数。 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父类自己提供了无参构造函数,则会调用父类自己的无参构

2020-12-05 17:13:04 1771

原创 C++高并发网络架构与实现——第四篇

学会使用C++实现从1个用户连接到10000个用户链接,从每秒1个用户/1个数据包,到1万用户/1百万个数据包,最终实现高并发服务器

2020-12-02 21:06:02 1852 3

原创 Ubuntu20.04版本安装后建议安装文件,血泪教训

由于项目中需要进行跨平台实验,所以虚拟机中安装了macos系统和ubuntu系统,搞了两天,我可太难了。下面是我建议安装后接着安装的一些东西:1,将ubuntu换成中文版:https://blog.csdn.net/weixin_42342813/article/details/1072989442,安装中文输入法:https://blog.csdn.net/yyj108317/article/details/106001083/3,安装vim编译器:https://zhuanlan.zhi

2020-12-02 15:13:32 3465 10

Zlib128TarGz.rar

Zlib128TarGz.rar下载

2020-08-01

YunDisk.rar

YunDisk.rar 中关于linux东西的下载,非常适合下载

2020-08-01

hiredis-master.zip

hiredis-master.zip资源包下载

2020-08-01

rarlinux-x64-5.9.1.tar.gz

rarlinux-x64-5.9.1.tar.gz安装包,从而使用linux中可以使用.rar解压

2020-08-01

餐厅点餐系统.zip

餐厅点餐系统,分为前台和后台两部分,前台有点菜的增删改查等,后台有菜品以及菜品定价的一些功能等,只有一千多行代码,勉强能看

2020-05-20

黑白棋人人对战实现(人机,网络暂不可用,自行编写)

黑白棋人人对战实现,人机对战感觉写出来是智障人机,就没写,网络对战暂时还不会,准备放置一段时间,没写的部分可以自行补充,加油

2020-05-05

服务器以及客户端.zip

QT中关于服务器端和客户端的代码编写,可以连接并发送数据。

2020-04-26

qtcreator.exe

网上一直循环不能关闭的小程序提升版,可以显示图片,简单的整蛊小程序,下载下载下载下载。

2020-04-18

空空如也

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

TA关注的人

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