自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (1)
  • 收藏
  • 关注

转载 多线程编程

一、两个线程交替打印#include<thread>#include<iostream>#include<mutex>#include<condition_variable>using namespace std;mutex data_mutex;condition_variable data_var;bool flag = true;void printA(){ while(1){ unique_lock<m

2021-07-27 10:08:49 128

转载 条件变量实现生产者消费者模型

#include <iostream>#include <thread>#include <vector>#include <mutex>#include <time.h>#include <Windows.h>#include <condition_variable>using namespace std;mutex mtx;condition_variable consume;//定义消费工厂,生

2021-07-23 22:38:19 139

原创 ACM模式下输入

一、c++读取符号隔开的数据存入数组方式一:#include<iostream>#include<sstream>#include<string>#include<vector>using namespace std;int main() { string str; getline(cin, str); istringstream is(str); int t; char ch; vector<in

2021-06-17 21:58:33 528

原创 华为2021软件精英挑战赛思路分享

一、前言此次是第一次参加华为软件精英挑战赛,前几届实验室师兄都有参加这个比赛并都取得不错的成绩。通过这次比赛学到了很多,小到c++基本语法,大到算法的分析建模过程,都得到极大锻炼。也通过比赛明白了优秀的算法工程师和开发工程师为什么得到各个大厂的疯抢,好的算法思维能为一个企业带来的潜在价值不可估量。整个比赛赛题有三个(技术还不够强,没能进入决赛,看了决赛的赛题采用分组对抗,很有意思),风别是预赛、正式赛和复赛,各个赛题变化不大,在github上传了复赛赛题及数据集,初赛预赛的时候花了很多时间,最终排名.

2021-06-08 19:12:36 1734

原创 Mysql基础

一、事务要么都执行,要么都不执行ACID:操作://mysql默认开启事务set autocommit=0 //关闭事务set autocommit=1 //开启事务手动处理事务:start transaction --标记一个事务的开始,从这之后的sql都在同一个事务内insert ...insert ...commit --提交,持久化 成功rollback --回滚:回到原来的样子 失败模拟场景: 转账create database sh

2021-06-05 19:58:30 57

原创 Mysql核心语句

参考:B站狂神说JAV:MYSQL最新教程SQL语句:structured query language 结构化查询语言分类一、操作数据库【】中内容为可选内容1.创建数据库:create database 【if not exists】 数据库名;创建数据库表:create table if not exists `student`( `id` int(4) not null auto_increment comment '学号', `name` varchar(30) not

2021-06-05 14:13:01 204

原创 二、mysql事务处理及读写二进制文件

一、事务#include <iostream>#include <mysql.h>#include <thread>#include <string>#include <sstream>#include <map>#include <chrono>using namespace std;using namespace chrono;int main(){ //初始化mysql上下文 MYSQL .

2021-05-26 11:05:30 252 2

原创 一、数据库连接登录及基础API

参考连接MYSQL 常用API一、初始化MYSQL * mysql_init(MYSQL *mysql); // 初始化一个MYSQL 连接的实例对象void mysql_close(MYSQL *sock); // 释放一个MYSQL 连接实例二、连接mysql_real_connect()函数:#include<mysql.h>函数原型描述:MYSQL *mysql_real_connect (MYSQL *mysql, //MYS

2021-05-26 10:04:01 479

原创 windows下mysql安装

一、下载安装包,官方网站,有免安装版本和安装版本(这里以免安装版为例,安装版安装好后一样)二、解压,从cmd进入bin目录三。执行初始化:mysqld --initialize --console初始化会生成临时密码四、用该密码登录:mysqld -u root -p Enter输入上述密码:XfdZ>KD.15Z*此时会报一个错误,因为服务端还没有启动:五、安装服务器:命名很关键,后面都会用到mysald install mysql8.0打开服务器:net st

2021-05-25 16:37:13 83

原创 数据库MySQL基本操作(一)

启动MySQL:mysql -u root -p一、权限查询(1)查看mysql的所有用户及其权限:select * from mysql.user\G; #(格式化显示)(2)查看当前mysql用户权限:show grants;(3)查看某个用户的权限show grants for username@host; #用户名@主机(4)查看所有用户select host,user from mysql.user;二、用户创建使用create user命令创建。creat

2021-05-24 13:18:58 93

原创 网络编程:服务端

一、单个sokect监听#ifdef WIN32//#include <windows.h>#include<ws2tcpip.h>#else#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>#unclude <stdlib.h>#include <sys/socket.h> #incklude <#define cl

2021-05-20 18:53:45 85

原创 IRS智能反射表面相关文献及代码

1 Z. Wang, L. Liu, and S. Cui, “Channel estimation for intelligent reflecting surface assisted multiuser communications: framework, algorithms, and analysis,” IEEE Trans. Wireless Commun., vol. 19, no. 10, pp. 6607-6620, Oct. 2020.Channel estimation f

2021-05-07 16:27:40 5689

原创 高级I/O函数

一、pipe函数用于创建一个管道,以实现进程通信。#include<unistd.h>int pipe(int fd[2])参数是一个包含两个int型整数的数组指针。成功时返回0,并将一对打开的文件描述符值填入指向的参数数组,失败但会-1socket的基础API有一个sockpair函数,能够方便创建双向管道,定义:#include<sys/types.h>#include<sys/socket.h>int socketpair(int domain,

2021-04-25 19:45:00 84

原创 智能指针简单实现

基于引用计数的智能指针简单实现#include <iostream>using namespace std;template<class T>class SmartPtr{public: SmartPtr(T *p); ~SmartPtr(); SmartPtr(const SmartPtr<T> &orig); // 浅拷贝 SmartPtr<T>& operator

2021-04-21 15:33:39 96

转载 设计模式面试题

面对对象中的设计原则:SRP(Single Responsibility Principle):单一职责原则,就是说一个类只提供一种功能和仅有一个引起它变化的因素。**OCP(Open Close Principle):开放封闭原则,**就是对一个类来说,对它的内部修改是封闭的,对它的扩展是开放的。DIP(Dependence Inversion Principle):依赖倒置原则,就是程序依赖于抽象,而不依赖于实现,它的主要目的是为了降低耦合性,它一般通过反射和配置文件来实现的。**LSP(Lis

2021-04-12 18:28:56 88

原创 linux上的客户端连接window上的服务器

server代码:window上的服务器代码不变,但是需要注意一点:linux上的client连接服务器上的server时服务器的防火墙必须关闭才能连接成功。#define WIN32_LEAN_AND_MEAN#define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h>#include<WinSock2.h>#include<stdio.h>#include <vector>#pr

2021-04-01 20:07:47 310

原创 2021-04-01

小包最近迷上了一款叫做雀魂的麻将游戏,但是这个游戏规则太复杂,小包玩了几个月了还是输多赢少。于是生气的小包根据游戏简化了一下规则发明了一种新的麻将,只留下一种花色,并且去除了一些特殊和牌方式(例如七对子等),具体的规则如下:总共有36张牌,每张牌是1~9。每个数字4张牌。你手里有其中的14张牌,如果这14张牌满足如下条件,即算作和牌14张牌中有2张相同数字的牌,称为雀头。除去上述2张牌,剩下12张牌可以组成4个顺子或刻子。顺子的意思是递增的连续3个数字牌(例如234,567等),刻子的意思是相同数

2021-04-01 11:30:52 76

原创 select模型下socket编程

服务器:#define WIN32_LEAN_AND_MEAN#define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h>#include<WinSock2.h>#include<stdio.h>#include <vector>#pragma comment(lib,"ws2_32.lib")enum CMD{ CMD_LOGIN, CMD_LOGIN_RESULT, C

2021-03-31 18:40:31 154

原创 LRU算法代码

// 最近最少缓存算法(key,value)class LRUCache{private: // 1、list双向链表 std::list<std::pair< int, int> > _list; // 2、使用unordered_map // 由于需要快速定位链表的结点,故在map中使用value字段来存储链表的结点,这里是使用了迭代器。 std::unordered_map< int, std::list<std::p

2021-03-20 11:57:09 548

原创 395. 至少有 K 个重复字符的最长子串

题目描述:给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。示例 1:输入:s = "aaabb", k = 3输出:3解释:最长子串为 "aaa" ,其中 'a' 重复了 3 次。示例 2:输入:s = "ababbc", k = 2输出:5解释:最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3 次。 提示:1 <= s.length <= 104

2021-02-28 19:48:21 91

原创 Socket的基本操作函数socket()、bind()、listen()、connect()、accept()、recv()、send()、select()、close()

文章目录 Socket的基本操作函数1、socket()函数1.1、 命名socket网络字节序与主机字节序: 2、bind()函数3、listen()、connect()函数4、accept()函数5、recv()、send()等函数同步Socket的send函数的执...

2021-02-23 00:12:57 7273

原创 424. 替换后的最长重复字符

给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过 104。示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA", k = 1输出:4解释:将中间的一个'A'替换为'B',字符串变为 "AABBBBA"。子串 "BBBB" 有最长重复字母, 答案为 4

2021-02-02 13:54:27 193

原创 python画图

用python的matplotlib画图时,坐标字符显示每个字符间距是一样的,看着很别扭,如下图:分析原因,是由字体格式造成的,影刺将显示的字体设置为Times New Roman即可。然后在网上找了很多资料修改坐标刻度线显示字体,结果只需要在显示刻度后面加上一个参数即可解决(早点查一下封装函数就好了)plt.figure(figsize=[15,8]) plt.scatter(X, Y, label = 'RealValue')plt.plot(X, func(X, a, b), 'red',

2021-01-18 10:50:36 960

原创 第六章 应用层

一、域名系统DNS用来把人们使用的机器名字转换为IP地址二、文件传送协议(FTP)

2020-12-15 21:13:01 53

原创 第五章 传输层(三)

七、TCP的流量控制八、TCP的拥塞控制九、TCP的运输连接管理为了避免B再給A回复确认收到A所发出的确认信号(禁止套娃操作)。TCP设有一个保活计时器,如果在规定的时间内都没收到对方重复发送过来的数据,就表示A的信号已经被B收到了。...

2020-12-14 22:46:08 61

原创 第五章 传输层(二)

四、可靠传输的工作原理

2020-12-14 19:49:38 53

原创 第五章 传输层 (一)

一、传输层协议概述网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的端到端的逻辑通信,还可以对收到的报文进行差错检测。在一台主机中经常由多个应用进程同时分别和另一台主机中的多个应用进程通信。这表明运输层一个很重要的功能:复用和分用。根据应用程序的需求不同,运输层需要由两种不同的传输协议,即面向链接的TCP和无连接的UDP.二、用户数据报协议UDP只在IP的数据报服务上增加了很少一点的功能:复用和分用、差错检验三、传输控制协议TCP概述可靠交付:不重复、

2020-12-13 19:54:46 109

原创 第四章 网络层(二)

划分子网和构造超网从两级IP地址到三级IP地址:划分的子网对外仍然是一个整体,他只是把IP地址的主机号部分进行再划分,而不改变IP地址原来的网络号。32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。划分子网增加了灵活性,但却减少了能够链接在网络上的主机数目。子网号全0和全1不作为主机地址使用使用子网时的分组转发:使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳网络无分类编址CIDR网际控制报文协议ICMP**网

2020-12-13 18:00:45 185

原创 842. 将数组拆分成斐波那契序列

给定一个数字字符串 S,比如 S = “123456579”,我们可以将它分成斐波那契式的序列 [123, 456, 579]。形式上,斐波那契式序列是一个非负整数列表 F,且满足:0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型);F.length >= 3;对于所有的0 <= i < F.length - 2,都有 F[i] + F[i+1] = F[i+2] 成立。另外,请注意,将字符串拆分成小块时,每个块的数字一定

2020-12-08 14:07:06 46

原创 第四章 网络层(一)

一、网络层提供的两种服务互联网采用的设计思路:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。虚电路服务和数据报服务TCP/IP体系的网络层提供的时数据报服务二、网际协议IP...

2020-12-06 22:32:24 293

原创 c++内存管理第二讲 标准库的::allocator(一)

https://blog.csdn.net/guangcheng0312q/article/details/100614397cookie是记录分配内存的大小,当使用容器,所有分配的内存一样大就可以去掉;G4.9结构g4.9的**__pool_alloc是我们在容器中使用的分配器**.而普通的allocator,则是通过operator new 与operator delete调用malloca与free.其实没有什么特殊设计.测试一下:采用__gnu_cxx::pool_alloc<

2020-12-02 17:09:09 361

原创 C++内存管理----第一讲(二)

第一个版本例子如下,在Scream类中重载operator new和operator delete,这种设计引发多耗用一个next指针,该类原本只有一个int类型占4个字节,引入next指针后占8个字节。下页的程序是是对上面类的一个检验,首先输出一个类的实例的大小,发现确实为8,然后创建一个大小为100的指向Screen的指针数组,然后new一百次并赋给指针,打印前10个指针的地址,可以发现每两个相邻指针间隔为(说明重载后的new确实减少了原来operator new的coiks,相对右边的结果。在

2020-12-02 14:28:05 141

原创 第三章 数据链路层(二)

使用广播信道的数据链路层局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。局域网具有如下一些主要优点:1.具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。2.便于系统的扩展和逐渐演变,各设备的位置可灵活调整和改变。3.提高了系统的可靠性(reliability)、可用性(availability)和生存性(survivability)....

2020-11-30 22:10:29 175 1

原创 第三章 数据链路层(一)

数据链路层谁计算机网络底层,它使用的信道主要有两种类型:点对点信道:使用一对一的点对点通信方式。广播信道:使用一对多的广播通信方式。使用点对点信道数据链路层:帧的概念:它是数据链路层的协议数据单位。它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包。三个基本问题数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:封装成帧、透明传输和差错检测。下面分别讨论这三个基

2020-11-29 21:45:58 577 1

原创 第一章 概述

一、互联网的组成:边缘部分:所有连接在互联网上的主机组成,这部分是用户直接使用的,用来进行通信(传输数据、音频)和资源共享。网络边缘的端系统之间通信方式:客户-服务器方式和对等方式。核心部分:有大量网络和链接这些网络的路由器组成,是为边缘部分提供服务的(提供连通性和交换)。路由器是实现分组交换的关键构建,其任务是转发收到的分组,(网络核心部分最重要的功能)互联网现在采用的存储转发的分组技术。二、计算机网络性能指标:1.速率:数据的传输速率,也称数据率或比特率。2.带宽:a.信号所包含的不

2020-11-29 19:20:49 71

原创 5614. 找出最具竞争力的子序列 单调栈

5614. 找出最具竞争力的子序列给你一个整数数组 nums 和一个正整数 k ,返回长度为 k 且最具 竞争力 的 nums 子序列。数组的子序列是从数组中删除一些元素(可能不删除元素)得到的序列。在子序列 a 和子序列 b 第一个不相同的位置上,如果 a 中的数字小于 b 中对应的数字,那么我们称子序列 a 比子序列 b(相同长度下)更具 竞争力 。 例如,[1,3,4] 比 [1,3,5] 更具竞争力,在第一个不相同的位置,也就是最后一个位置上, 4 小于 5 。示例 1:输入:nums =

2020-11-29 15:19:49 325

原创 差分数组

5615. 使数组互补的最少操作次数本周周赛题,在做题时忽略了上面的这个条件,求解答案总是超时。看题解用到差分数组,之前做题一直没有接触过。在此记录以便复习。差分数组:差分数组就是原始数组相邻元素之间的差。举个栗子,给出一个差分数组其实差分数组是一个辅助数组,从侧面来表示给定某一数组的变化,一般用来对数组进行区间修改的操作还是上面那个表里的栗子,我们需要进行以下操作:1、将区间【1,4】的数值全部加上32、将区间【3,5】的数值全部减去5你可以进行枚举。但是如果给你的数据量是1e5,操

2020-11-29 14:35:33 6258 3

原创 Transformer注意力机制笔记

最近一个模型需要用到注意力机制,但是对它的工作原理不是很了解,通过查找资料将觉得有用的记录下来以便后面遗忘后复习(内容来源于网络,我只是个搬运工)一、Transformer架构原文地址:Transformer模型深度解读机器翻译是从RNN开始跨入神经网络机器翻译时代的,几个比较重要的阶段分别是: Simple RNN, Contextualize RNN, Contextualized RNN with attention, Transformer(2017)因为要理解程序,所以重点记录Atten

2020-11-24 12:21:57 2537 1

原创 KMP字符串匹配算法代码(模板)

**KMP字符串匹配算法代码(模板)**#include<iostream>#include<algorithm>#include<cstring>#include<string>using namespace std;int next[105];//字符串里面某个字符之前的字符串所拥有的最大公共前后缀长度 //寻找前后缀的过程实质也是一个字符串的匹配 ,相当于2个自身进行匹配字符串 void get_next(char* p){//

2020-11-20 22:25:05 115

原创 力扣 1658. 将 x 减到 0 的最小操作数

题目描述:示例 1:输入:nums = [1,1,4,2,3], x = 5输出:2解释:最佳解决方案是移除后两个元素,将 x 减到 0 。示例 2:输入:nums = [5,6,7,8,9], x = 4输出:-1示例 3:输入:nums = [3,2,20,1,1,3], x = 10输出:5解释:最佳解决方案是移除后三个元素和前两个元素(总共 5 次操作),将 x 减到 0 。提示:1 <= nums.length <= 1051 <= nums[

2020-11-20 22:20:43 244

01_C提高讲义.doc

C语言课程笔记,包含大量举例。•课后 从笔记、代码等资料中复习上课讲过的知识点。 如果时间允许,请课前做好预习。 尽量少回看视频,别对视频产生依赖,可以用2倍速度回看视频。 按时完成老师布置的练习,记录练习中遇到的BUG和解决方案,根据自己的理解总结学到的知识点。 初学者 应该抓住重点,不要钻牛角尖 遇到问题了,优先自己尝试解决,其次谷歌百度,最后再问老师。 如果时间允许,可以多去网上找对应阶段的学习资料面试题,注意作息,积极锻炼。

2019-09-28

空空如也

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

TA关注的人

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