- 博客(78)
- 收藏
- 关注
原创 《MySQL:MySQL表的基本查询操作CRUD》
MySQL表的基本查询操作,Create创建、Retrieve读取、Update更新、Delete删除,聚合函数、group by 子句的使用。
2025-04-21 21:20:12
665
1
原创 《MySQL:MySQL表的约束-主键/复合主键/唯一键/外键》
MySQL表的约束:空属性、default、列描述、主键、复合主键、自增长、唯一键、外键。
2025-04-20 11:48:21
787
原创 《MySQL:MySQL数据类型分类》
MySQL数据类型的分类,数值类、小数类、字符串类、enum和set类、find_in_set函数、时间和日期类。
2025-04-18 11:21:53
665
原创 《八大排序算法-插入|希尔|选择|堆排|冒泡|快排|归并|计数》
直接插入排序、希尔排序,直接选择排序、堆排序,冒泡排序、快速排序,归并排序,计数排序。
2025-03-30 21:51:17
3170
2
原创 《C++11:通过thread类编写C++多线程程序》
C++多线程编程,mutex互斥锁,具有RAII思想的lock_guard、unique_lock,lock_guard与unique_lock的区别,生产者-消费者模型。
2025-03-29 11:22:43
730
原创 《C++11:bind绑定器与function包装器》
bind1st、bind2nd,C++11的bind及底层原理,C++11的function及底层原理,bind与function实现线程池。
2025-03-27 22:02:26
636
原创 《C++11 容器emplace方法原理剖析,究竟高效在哪?》
emplace_back可以直接传入对象构造所需的参数,在容器底层内存位置构造对象,避免了push_back要先创建对象再拷贝或移动的过程。减少了资源开销,提高了插入效率。
2025-03-22 16:48:37
603
原创 《C++智能指针:建议使用 make_shared 代替 shared_ptr》
使用C++14make_shared代替C++11的shared_ptr,make_shared的优缺点。
2025-03-21 17:41:23
486
原创 《线程池:Linux平台编译线程池动态库发生的死锁问题》
当把线程池在Linux下编译成动态库时,线程池发生死锁问题,通过分析发现Linux平台和Windows平台下关于信号量的析构函数实现不一样,进而解决线程池在Linux平台上运行死锁的问题。
2025-03-19 22:54:46
617
1
原创 《线程池:死锁问题情况分析》
在cached模式线程池的实际测试中发现程序运行出错,通过定位分析发现代码设计有缺陷,未考虑线程池在析构的时候,线程池中线程会竞争锁而导致死锁的情况。使用锁+双重判断解决了死锁问题。
2025-03-16 20:09:21
558
原创 《cached模式线程池:线程池析构之后,线程资源回收问题》
解决了线程池析构之后,线程资源回收问题。由此,设计出了一个完整的线程池,支持fixed模式、cached模式,支持用户自定义设置线程池工作模式、任务上限阈值、cached模式下线程上限阈值。
2025-03-16 03:34:51
715
原创 《cached模式线程池:基础功能实现》
基于fixed模式的线程池,通过解决三个问题,1.可变的线程池工作模式、2.根据任务数量创建新线程、3.多余线程的回收,完成了对cached模式线程池基础功能的实现。
2025-03-16 00:18:20
673
原创 《ps:cached模式下使用C++11提供的std::chrono处理时间问题》
关于C++11引入的std::chrono库提供的时间处理方法,时间间隔,时间点,时钟,时间转换。
2025-03-15 15:13:08
433
原创 《fixed模式线程池:基础功能实现》
通过对线程池整体架构的梳理,完成对fixed模式线程池基础功能的实现,用户提交给线程池任务,线程池派发线程处理任务。
2025-03-15 00:34:09
594
原创 《线程池项目:线程池背景知识与整体架构梳理》
线程池,并发与并行,多线程的优势,线程池的优势,基于fixed模式与cached模式的线程池,线程同步的方式,项目设计与架构梳理。
2025-03-14 21:06:50
1019
1
原创 《fixed模式线程池:线程池执行完任务,获取返回值问题》
通过设计Any类来接收任意数据的类型,信号量让用户阻塞等待任务执行完成之后再接收返回值,最终通过实现Result类完美解决了如何接收线程池执行完任务以后,如何获取返回值的问题。
2025-03-14 20:42:15
1245
原创 《C++ 类型转换:这是什么造型啊?挺别致啊》
C++四种强制类型转换:static_cast、reinterpret_cast、const_cast、dynamic_cast......
2025-03-11 17:48:48
1041
原创 《C++ 智能指针:长达数十年的血泪史,一步步征服内存泄漏》
智能指针的血泪史、内存泄漏、智能指针的使用、auto_ptr、unique_ptr、shared_ptr、shared_ptr的线程安全问题、shared_ptr的循环引用......
2025-03-10 16:31:03
1034
原创 《C++异常:对比传统错误处理,开启编程新视角》
C语言传统的处理错误的方式、异常概念、异常使用、异常重新抛出、异常安全、异常规范、自定义异常体系、异常优缺点......
2025-03-09 16:39:44
1134
原创 【Vector】26. 删除有序数组中的重复项
使用快慢指针法,快指针fast遍历数组,如果nums[slow] == nums[fast],则说明两个元素相同,fast继续遍历,slow不动;如果nums[slow]!= nums[fast],则说明两个元素不同,进而可以将新元素nums[fast]覆盖上nums[slow]的下一个元素nums[slow+1],以达到去重的目的。(如果这两个不同的元素是相邻的,此时nums[fast]自己给自己覆盖也没关系)非严格递增是指序列中的元素从前往后看是递增的,但允许某些元素相等。
2025-03-07 16:59:12
224
原创 【String】125. 验证回文串
如果c是大写字母且具有等效的小写字母,则将c转换为其等效的小写字母。如果c无法进行此类转换,则返回的值为c不变。如果c是小写字母且具有等效的大写字母,则将c转换为其等效的大写字母。如果c无法进行此类转换,则返回的值为c不变。可以将原字符串中的字母和数字(数字字符)进行过滤,过滤到新字符串中,然后双指针遍历新字符串,判断是否回文。空间复杂度O(M),M为过滤后的新字符串长度。空间复杂度O(1),这里没有使用额外的空间。时间复杂度O(N),N为原字符串s长度。时间复杂度O(N),N为字符串s长度。
2025-03-05 17:20:27
141
原创 【String】387. 字符串中的第一个唯一字符
在计算机中,字符的表示有多种编码方式,如果是ASCII编码,那么字符的个数范围就是0-255,一共256个字符,但是,在更广泛的场景中,比如使用UTF-8等编码方式,这些字符的编码值是大于256的(Unicode编码范围从U+0000-U+10FFFF)。此时,使用长度为256的数组来统计字符出现的次数时,对于编码值大于255的字符,就无法正确记录其出现的结果了,所以会导致错误的结果。可以使用unordered_map来代替固定大小的数组,不会受限于字符编码值的范围,可以存储任意字符。
2025-03-04 11:51:08
203
空空如也
怎么运行不出来呀?哪里错了么
2023-07-12
“=”左操作数必须为左值
2023-07-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人