自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 KMP算法

【代码】KMP算法。

2025-04-05 19:13:00 24

原创 shared_ptr和weak_ptr原理

1.为什么用对象指针去创建两个智能指针他们的计数会分开计数?因为有两个控制块,各管理各的。2.强引用计数用来维持对象的生命周期,弱引用计数用来解决循环引用的问题。

2025-04-04 16:42:30 100

原创 循环引用问题和专门用来解决的weak_ptr

main结束后x,y析构,引用计数各减1,但不为0,无法执行A,B对象的析构,所以A,B会内存泄漏.x,y两个智能指针的引用计数都变为2。

2025-04-04 16:23:16 72

原创 析构和构造顺序(继承体系下的)(成员和函数体)

子类可能会用到父类的成员和方法,所以父类不能先析构构造函数:析构函数:

2025-04-04 15:08:08 85

原创 vmware下载

百度网盘k27h。

2025-04-01 22:04:07 214

原创 完全背包和多重背包的优化以及滚动数组优化

用打包的方法,把有限的物品用二进制方式分成一个个小堆,这些小堆可以拼出s内的任意数量,所以dp[i,j]=max(dp[i-1,j] dp[i,j-v]+w)说明(k+1)*v>j,所以下一个也是到k为止。对应不上了,所以不能用完全背包的优化方法。用一个状态来代替多个状态。每种物品有限定个数s。

2025-03-31 13:49:09 120

原创 acwing树的重心

【代码】acwing树的重心。

2025-03-31 13:29:41 107

原创 应用层协议http

2.应用层协议例如LV协议(添加长度报头),是用来确保read缓冲区时读到的是一条完整的数据。1.序列化反序列化是把结构体变成字符串和把字符串变成结构体。

2025-03-30 21:49:36 287

原创 vscode中c/c++插件设置

2.插件cpu资源占用。

2025-03-29 15:24:32 91

原创 sort和priority_queue的排序方式原理

2.若可调用对象返回true则不交换两数位置,若是false则交换。1.可调用对象第一个参数是左边的数,第二个参数是右边的数。怎么理解sort的第三个参数可调用对象呢?剩下的随意写~,组成要的顺序就行。

2025-03-24 21:11:55 72

原创 muduo库链接问题

muduo库链接问题

2025-03-20 13:53:15 84

原创 求最大公约数的辗转相除算法

1.(a,b)的约数集和(b,a%b)的约数集相同。2.b为0时,(a,b)的最大公因数就是a。

2025-03-19 22:08:51 251

原创 算术基本定理分解质因数

【代码】算术基本定理分解质因数。

2025-03-19 21:09:44 61

原创 普通函数和成员函数的地址

普通函数和成员函数的地址

2025-03-19 15:07:08 86

原创 为什么服务器要绑定”0.0.0.0“IP

能让服务器能够接收从任何可用网络接口发来的数据。如果服务器有多个网卡或者多个 IP 地址,绑定。能确保无论客户端连接哪个地址,服务器都能接收到连接请求。

2025-03-19 14:53:02 67

原创 自定义类型作为unordered_map的key的问题

unordered_map的find里面创建的是const std::equal_to<T>,然后用operator()来判断Key是否相同,这里equal_to还不是底层,Key的operator==()才是,所以第四个参数哪怕是自定义类型作Key也不用管,但要注意Key的operator==()的两个调用传递参数都是const的,所以实现Key的operator==()要加const避免调不动。2.实现Key的operator==()来为自定义类型提供哈希函数。1.特化出hash实例。

2025-03-19 14:13:48 144

原创 派生类中重写虚函数时,还加不加 virtual

只要父类函数是虚函数,派生类中的重写函数自动保持虚函数特性,无论是否显式声明。2.加上virtual便于代码维护一下就知道谁是重写的。是冗余的,并且不会对虚函数的行为产生实际影响。

2025-03-19 09:39:16 108

原创 大小端和数据存储问题

大小端和数据存储问题

2025-03-18 09:31:58 137

原创 一个数的约数之和与约数个数

先考虑比sqrt(n)小的,不断除以质因数,最后如果还是大于1,说明这就是大于sqrt(n)的唯一质因子。n中最多只含有一个大于sqrt(n)的因子,如果有两个大于sqrt(n)的因子,那么相乘会大于n,约数不就是质因数的组合嘛,所以一共有(e1+1)(e2+1).....(ek+1)个约数。算术基本定理:每个正整数都能够以唯一的方式表示成它的质因数的乘积。展开之后的多项式每一项都是约数,这就是约数之和。

2025-03-17 22:39:04 197

原创 dynamic_cast和dynamic_pointer_cast的使用

会在运行时检查对象的实际类型,确保转换是合法的。如果转换不成功,返回。(对于指针转换)或者抛出。异常(对于引用转换)

2025-03-17 19:44:52 153

原创 类模板和函数模板中的模板参数问题

b.函数模板有三种给模板参数方式:1.显式给 2.缺省给 3.推导给。函数参数列表中如果有模板参数,则编译器可以通过函数参数推导模板参数。a.类模板有两种给模板参数的方式1.显式给2.缺省给。以上给参方式在实例化,特化,typedef下均适用。

2025-03-17 13:23:07 95

原创 c++中的局部覆盖

是不会报错的,这时默认使用func就是参数类型,那怎么使用到函数func,指明类域即可如this->func()例如上面默认使用max就是int,如果要使用max函数指明域就行。的函数,然后在另一个函数中使用同样的参数名。如果在一个类中有一个名为。

2025-03-17 10:42:10 125

原创 数据结构堆

【代码】数据结构堆。

2025-03-17 10:07:49 155

原创 EAGAIN和EWOULDBLOCK

打开文件描述符或套接字时,如果你尝试执行读写操作,而没有足够的数据可供读取或无法立即写入数据(自身没有数据了或缓冲区满了写不进去),可能会返回。(资源暂时不可用),即当前的 I/O 操作无法立即完成,但可以稍后重试。在大多数操作系统和库中是可以互换使用的,它们都表示。,告诉你操作无法立即完成,稍后重试。当以非阻塞模式(例如使用。

2025-03-16 13:36:40 210

原创 printf打印连接字符串问题

这个是可以的会连接起来。总结:字符串可以拼接,字符串和const char*不行。printf(p);

2025-03-15 14:36:17 73

原创 普通enum和enum class的区别

1.普通enum枚举值使用时不用带类型,当两个enum类型有相同枚举名就会报错。而enum class枚举值使用时带类型,就不怕枚举值重名了。2.普通enum枚举值可以隐式转换为int。enum class必须强转,不会隐式转换。

2025-03-15 14:04:19 99

原创 并查集的实现

1.p[N]数组,p[i]表示i的父节点,如果p[i]==i那就是根节点。int find(int x)返回x根节点并把路径上点都连接根节点。

2025-03-15 10:39:22 89

原创 续行符的使用

续行符的使用

2025-03-14 19:52:35 113

原创 Trie树--用来记录字符串集合的数据结构

【代码】Trie树--用来记录字符串集合的数据结构。

2025-03-13 21:38:18 63

原创 KMP算法过程和实现

kmp算法比较过程是i和j+1比较,不相同时i不动,j去往后退,next数组表示的是最大后缀和前缀相同时前缀的终点下标,那就用next[j]和原来i–1那段去匹配,在对比i和j+1,如果还不相同,因为j后缀和next[j]前缀那一段相同,所以next[j]后缀和next[next[j]]前缀可以换成j后缀和next[next[j]],即再回退,直到回退到 –1,这时j+1是0,也就是从头匹配。第j+1个数的next可以看next[j],如果有p[j+1]暴力方法每次不相同时i返回再++,j回到开头。

2025-03-13 09:49:26 148

原创 时间chrono

ratio是一个类模板,第一个模板参数表示分子,第二个模板参数表示分母,最后单位是秒。duration是一个类模板,第一个参数是个数,第二个参数是单位时间,最后做乘法。seconds是duration的一个全特化的类。

2025-03-12 18:19:40 93

原创 单调队列算法

单调队列里保存的是下一个区间可能的目标值。拿最小值为例,加入数x,那么单调队列中大于x的数最后一定不可能是目标值,所以直接删掉,单调正是这样不知不觉形成的。说的是单调队列,但是除了头删外还要尾删,所以stl的队列用不了。在这个过程要注意把单调队列中不符合k区间的下标先删去,再去加x。n个数的数组,取k的区间,求每个区间最小值和最大值。这道题卡时间,用cout没过用printf过了。

2025-03-11 22:15:02 223

原创 Muduo库客户端编写

2.找头文件路径时,cpp文件所在目录看作 . ,然后去找头文件目录。也就是说TcppServer在muduo::net::命名空间中。

2025-03-11 20:14:56 101

原创 单调栈算法

往栈中插入x这个数,对于下一个要找目标值的数来说x是离他最近的,那么在栈中比x大的数一定不会是最后要的目标值,所以直接去掉。暴力方法是定一个i,然后j=i-1往前遍历,用单调栈优化,我们用一个栈来保存可能的目标值,这样我们只需要搜索这个栈而不需要再次遍历,怎么维护这个栈?找数组中每个数的左边离它最近且小于它的目标值。

2025-03-10 22:09:15 139

原创 经典的表达式求值算法

【代码】经典的表达式求值算法。

2025-03-10 16:31:13 103

原创 字符变字符串

说明:创建一个包含n个元素的string对象,其中每个元素都被初始化为字符c。可以用该构造函数创建。

2025-03-10 16:10:03 96

原创 vscode上C/C++拓展出现内存不足问题

新版本的c/c++拓展的bug,更换成旧版本就好了。

2025-03-10 12:54:13 77

原创 代理服务器

电脑设置代理服务器就会无法正常上网(vscode cplusplus等网站),取消掉就可以了。

2025-03-09 20:14:39 94

原创 使用mysql的c API的准备工作

用yum源安装mysql服务时已经把mysql库下好了,在/lib64/mysql和/usr/lib64/mysql有libmysqlclient.so,这就是我们要的,头文件在/usr/include有mysql目录里面有mysql.h。-I 头文件去哪里找 -L库去哪里找 -l链接哪个库。

2025-03-08 17:42:55 100

原创 脏读、不可重复读,幻读的区别 mvcc及四种隔离级别

可重复读:只有第一次select创建read view后面不再创建,select时机不对即使是提交的更新也看不见(mysql的这种方式可以解决幻读和不可重复读的问题,一般数据库会有幻读问题)读提交:提交后的可以看见,每次select都要创建新的read view。读未提交:事务a没有提交更新事务b就可以看见,每次当前读就可以实现。不可重复读:强调修改和删除,一个事务多次查询同一个表结果不同。幻读:强调新增,也是一个事务多次查询同一个表结果不同。脏读:事务a还未提交更新事务b就可以看见。

2025-03-07 22:33:17 265

空空如也

空空如也

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

TA关注的人

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