自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣139单词拆分

它可以将一个大问题分解成多个小问题,通过求解子问题的最优解来推导出整个问题的最优解。在解决问题时,动态规划算法会将问题分解成一系列子问题,并在求解子问题的基础上逐步求解原问题。在算法竞赛中,动态规划算法也是一种常用的算法思想。1.定义状态:将原问题分解成若干个子问题,定义状态表示每个子问题的解,通常情况下,状态定义是问题解决的关键。2.确定状态转移方程:根据子问题之间的关系,定义状态之间的转移方程,即如何通过子问题的解推导出原问题的解。4.计算最优解:使用已经确定的状态转移方程计算出最终问题的最优解。

2023-03-28 20:00:27 233

原创 归并排序相关

归并排序是一种基于分治算法的排序算法,其思想是将一个待排序的序列递归地划分成两个子序列,直到每个子序列只有一个元素,然后对每个子序列进行排序,最后将排好序的子序列合并成一个有序的序列。归并排序的时间复杂度为O(nlogn),空间复杂度为O(n),稳定性好,适用于各种类型的数据排序。在划分序列时,应该保证左右两个子序列的长度相差不超过1,否则会影响排序的效率;在合并序列时,需要额外的空间来存储合并后的序列,这会占用一定的内存空间。将排好序的子序列合并成一个有序的序列,可以使用双指针的方式实现合并。

2023-03-27 19:01:36 127

原创 解释一下 C++ 中的虚函数是什么,以及它们的作用。

虚函数

2023-02-23 22:58:29 446

原创 力扣每日一题0410

很优雅的写法,学到了

2022-04-10 22:17:13 96

原创 智能指针用法

handler 处理ownership 所有权智能指针头文件#include <memory>可以看一看源码cplusplus.com这个网站很有用smart pointers 智能指针memory leak 内存泄漏智能指针其实就是一个类使用智能指针可以很大程度上避免内存泄漏封装的函数应该尽可能地短小精悍使用指针尽量使用智能指针复用较多可以考虑模板用智能指针、迭代器还有其他比较长的类型名的时候使用auto可以节省很多时间auto e1 = std::make_sha

2021-07-17 13:10:22 119

原创 git撤销pull命令

git refloggit reset --hard 40a9a83

2021-06-25 10:58:38 232

原创 GitExtensions相关

安装GitExtensions的时候还要安装Git和Kdiff如何设置成中文Tools->Settings->Appearance->Language英文好很重要啊

2021-06-23 12:47:27 138

原创 C++练习

快速注释多行 Ctrl K + Ctrl C快速取消注释多行 Ctrl K + Ctrl U使用迭代器的时候用auto会很方便VS中解决方案资源管理器与类视图比较重要要及时回顾网上和ipad上记的笔记draw 抽签 shuffle 洗牌STL...

2021-06-16 21:09:49 59

原创 shell相关

文件名后缀为sh例如build.sh内容第一行写#!/bin/bash#应该是表示注释的意思后面跟一些想要执行的指令脚本就是一些指令的集合执行的时候sh ./build.sh

2021-06-02 17:18:08 37

原创 vmware-tools安装以后还是无法复制粘贴和拖文件解决方法

进到这个目录下执行这条指令即可

2021-05-12 10:07:28 3260 1

原创 初始化列表典例

template< typename T >threadpool< T >::threadpool(int thread_number, int max_requests) : //初始化列表 C++11新特性 m_thread_number(thread_number), m_max_requests(max_requests), m_stop(false), m_threads(NULL) { if((thread_numbe

2021-04-24 16:05:06 66

原创 模板使用 线程池

#ifndef THREADPOOL_H#define THREADPOOL_H//#pragma once#include <list>#include <cstdio>#include <exception>#include <pthread.h>#include "locker.h"// 线程池类,将它定义为模板类是为了代码复用,模板参数T是任务类template<typename T>class threadpool

2021-04-24 15:52:42 213

原创 智能指针

智能指针详解为什么要使用智能指针:我们知道c++的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把delete语句直接也写了,但是我们不能避免程序还未执行到delete时就跳转了或者在函数中没有执行到最后的delete语句就返回了,如果我们不在每一个可能跳转或者返回的语句前释放资源,就会造成内存泄露。使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数,析构函数会自动释放资源。下面我们逐个介绍。添加链接描述目前还是不太清楚

2021-04-18 22:10:22 37

原创 文件操作

#include <fstream>const string FILENAME = "empFile.txt";void WorkerManager::save(){ ofstream ofs; ofs.open(FILENAME, ios::out); //用输出的方式打开文件 -- 写文件 //将每个人数据写入到文件中 for (int i = 0; i < this->m_EmpNum; i++) { ofs << this->

2021-04-18 21:44:19 86

原创 无他 唯手熟尔 this指针

一般定义几个类就写几个.h和.cpp文件名字和类名保持一致,注意大小写类里面封装的成员变量和成员函数对应的是事物抽象的属性和行为有纯虚函数的类是抽象类纯虚函数在基类中不做任何实现有时候甚至连.cpp都不用创建构造函数和析构函数如果不写的话系统会创建默认的也可以写个空实现的构造函数一般进行一些初始化析构函数一般进行一些清理收尾工作this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。this 只能用在类的内部,通过 this

2021-04-18 15:37:50 86

原创 ...

一共有三个东西Debug下有可执行文件Release的话会多一个文件夹Project1下面是所有的头文件和源文件剩下那个是解决方案文件太多的话直接搜索main就能找到主函数在哪儿自然就知道执行顺序了做项目提升最快C++文件操作用输入输出流C文件操作用文件描述符尽可能都封装成类比如通讯录就写一个通讯录类好像完全可以用class代替struct(&x) 这样可以修改x指针用-> 其他用.注意代码的顺序,先有谁后有谁能不用尽量不要用指针,用引用cin一个.

2021-04-17 23:55:29 41

原创 VS2017创建和使用动态库

见收藏夹动态库创建项目 Windows桌面 动态链接库注意.cpp里添加#include “pch.h”应该是自动生成的#define LIB_API __declspec(dllexport) //导出函数三个东西:头文件、.dll、.lib 复制到对应目录下好像可以把所有头文件放到pch.h然后动态库主函数里只需要include pch.h转移三个文件以后再加两类语句一类是引入新的头文件一类是引入新的库...

2021-04-15 16:08:09 130

原创 VS调试技巧

1.单击加红色断点2.绿色箭头直接跳转3.逐语句4.逐过程5.跳出还可以直接输出

2021-04-12 23:33:37 41

原创 2021-04-12

2021-04-12 21:18:06 50

原创 模板 Template

模板是一种对类型进行参数化的工具通常有两种形式:函数模板和类模板函数模板针对仅参数类型不同的函数类模板仅针对数据成员和成员函数类型不同的类使用模板的目的就是能够让程序员编写与类型无关的代码C++11新特性 初始化列表 冒号typedef unsigned int size_t;...

2021-04-11 23:02:59 67

原创 2021/4/11 Code

注意构造函数和析构函数声明类的成员函数定义时要加:: 就像std::一样没定义时头文件会报错,暂时不用管最后,给大家一些类的代码书写方面的建议,为了代码整体的美观和方便类的调用,因此一般将类的定义都写在头文件中,类的成员函数的声明在类中,函数的具体的定义都写在Cpp源码文件中,然后包含类定义的头文件包含进来,这样既美观易懂,而且也方便添加新的成员函数。默认的构造函数和析构函数可以这样写不然声明的时候写分号然后在cpp中实现确定对象被使用前已先被初始化...

2021-04-11 14:26:02 55

原创 2021/4/9 Code(批处理脚本)

2021-04-09 18:29:13 127

原创 2021/4/7 Code

好像Windows文件句柄相当于Linux文件描述符缺省好像就是默认的意思我好像可以不看键盘打字了哈哈,其实还是会瞄一眼哈哈

2021-04-07 23:01:47 50

原创 2021/4/5 Code

option 选择,选项UNP Unix网络编程端口复用设置的时机是在服务器端口绑定前

2021-04-05 23:46:06 41

原创 下载B站视频

使用IDM下载B站视频发现有三个最大的只有视频,画质较高最小的只有音频下载这两个就可以了如果想在本地看的话推荐PotPlayer播放视频后右键打开,载入音频注意选择所有文件(因为下载的音频也是mp4格式)后点击音频文件即可时间轴不对的话自己百度调一下,有快捷键...

2021-04-05 14:59:13 338

原创 2021/4/4 Code

因为宏名都是大写,所以用下划线来分开每个单词#define MUSE_DASH 6不过一般也用const了哈哈

2021-04-05 00:00:06 43

原创 2021/4/3 Code

开始学习effective c++意思是有效的一共55个准则定义宏的时候通常全部大写定义类按空格定义函数按回车

2021-04-03 23:46:27 45

原创 2021/4/2 Code

2021-04-03 00:12:48 70

原创 2021/4/1 Code

typedef int _t;那么就可以用_t来定义int类型的变量port两个字节ipv4的话IP4个字节ipv6的话IP6个字节char buf[] = "192.168.1.4";

2021-04-01 00:18:23 45

原创 2021/3/31 Code

以后不要再写using namespace std;用到的时候前面加std::用cin和cout都要加,不如直接用printf,还可以更方便地规定输出格式大小端指的是大端字节序还是小端字节序数据的高位字节储存在内存的低地址处 大端数据的高位字节储存在内存的高地址处 小端联合体成员变量共享内存,默认public...

2021-03-31 16:30:05 82

原创 2021/3/29 Code

我的第一个批处理脚本不显示所有命令,只显示结果

2021-03-29 09:17:25 92

原创 2021/3/28 Code

伪随机数真随机数

2021-03-28 13:21:18 55

原创 excel数字变成了小数点+E+17怎么办

1.点击单元格,右键选择设置单元格格式2.点击数字,选择文本,点击确定

2021-03-10 16:09:22 5494

原创 VMvare虚拟机黑屏的解决方法

1.设置-显示器-关闭3D图形2.打开shell管理员界面,输入netsh winsock reset3.重启电脑

2021-03-09 18:58:38 288

原创 C++反转链表完整代码

#include<iostream>using namespace std;struct ListNode{ int val; ListNode* next;};//反转链表ListNode* reverseList(ListNode* pHead){ if (!pHead || !pHead->next) return pHead; ListNode* tail = reverseList(pHead->next); pHead->next-

2020-09-13 08:51:24 3795

原创 为什么在 C++ 中函数要先声明然后再定义呢?

你也可以不声明,直接定义。但:1、函数的作用域只是从定义的地方开始的。也就是说,在函数定义行之上,你是无法使用该函数的。而把函数的定义都放在主函数之前的话,程序会变得不清楚。所以在使用前只需用一行声明一下就可以了,明了。2、也许函数并不都是在一个文件里使用,这时候,如果再定义一遍,不仅显得罗嗦,而且使程序的维护变得麻烦,如果修改这个函数的话,需要修改每个定义。所以可以把函数声明放在一个头文件中,使用的时候,包含这个头文件就可以了。3、有时候,自己写的函数需要给别人用,比如商业用途。这样的话,不能将整

2020-06-11 23:36:53 3136

原创 C++vector容器浅析6.11

2020-06-11 23:34:31 101

原创 C++笔记6.3

1.a=5<<2则a=20 意思是左移两位,乘42.

2020-06-04 16:43:54 182

原创 C++笔记6.1

1.只有十进制才有负数,八进制以0开头。2.fprintf函数只能以字符串的形式写入到文件中;fputc函数是以字符的形式写入到文件中;fwrite函数可把整形数以二进制形式存放到文件中。3.在64位系统中,sizeof(char*)=8,sizeof(char)=1。4.C++中不可以重载的运算符有?: :: . .*5.定义二维数组时,行可以缺省,列不能,而且一定要初始化。6.每个函数都可以有return,包括void类型,return可以在同一个函数中出现多次。7.为避免运算过程

2020-06-01 19:00:00 99

原创 【操作系统】页面置换算法(缓存算法)

1.FIFO(先进先出)核心原则是:如果一个数据最先进入缓存中,则应该最早淘汰掉。2.LRU(最近最久未使用)核心思想是 “数据最近被访问过,那么将来被访问的几率会更高,反之则更低”

2020-05-31 14:42:55 206

空空如也

空空如也

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

TA关注的人

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