自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《MySQL:MySQL表的内外连接》

MySQL表的内外连接:内连接,外连接、左外连接、右外连接。

2025-04-23 20:25:51 90

原创 《MySQL:MySQL复合查询》

MySQL复合查询:基本查询、多表查询、自连接、笛卡尔积、子查询、合并查询。

2025-04-22 19:00:09 949

原创 《MySQL:MySQL常见内置函数》

MySQL一些常见内置函数:日期函数、字符串函数、数学函数、其他一些函数。

2025-04-22 10:48:10 244

原创 《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

原创 《MySQL:MySQL表结构的基本操作》

关于MySQL表结构的基本操作,包括创建表、查看表、修改表、删除表。

2025-04-17 17:00:31 585

原创 《MySQL:MySQL数据库的基本操作》

字符集和校验规则,数据库的基本操作,增删查改,备份和恢复。

2025-04-17 12:09:37 1036

原创 《MySQL基础:了解MySQL周边概念》

了解MySQL的周边概念,什么是数据库、主流的数据库、MySQL的架构、SQL分类、存储引擎。

2025-04-16 18:13:53 807 1

原创 《MySQL下载安装:Linux下载MySQL 5.7版本》

Linux下下载安装MySQL,及MySQL相关配置工作。

2025-04-16 12:20:36 947

原创 《八大排序算法-插入|希尔|选择|堆排|冒泡|快排|归并|计数》

直接插入排序、希尔排序,直接选择排序、堆排序,冒泡排序、快速排序,归并排序,计数排序。

2025-03-30 21:51:17 3170 2

原创 《二叉树:二叉树的顺序结构->堆》

二叉树的顺序结构实现,向下调整算法,向上调整算法,堆的创建,插入,删除,堆排序,Top-K问题。

2025-03-30 13:45:43 1083

原创 《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++:函数对象-仿函数》

函数指针,函数对象,使用函数对象的优点。

2025-03-27 16:47:00 260

原创 《Git:基本命令使用》

git基本指令。

2025-03-22 21:28:34 1283 2

原创 《C++11 容器emplace方法原理剖析,究竟高效在哪?》

emplace_back可以直接传入对象构造所需的参数,在容器底层内存位置构造对象,避免了push_back要先创建对象再拷贝或移动的过程。减少了资源开销,提高了插入效率。

2025-03-22 16:48:37 603

原创 《C++11 基于CAS无锁操作的atomic原子类型》

基于CAS的atomic原子类型。

2025-03-21 22:11:36 201

原创 《C++智能指针:建议使用 make_shared 代替 shared_ptr》

使用C++14make_shared代替C++11的shared_ptr,make_shared的优缺点。

2025-03-21 17:41:23 486

原创 《线程池最终版:使用可变参模板和future优化重构设计》

将线程池改造为基于可变参模板和future机制的最终版本线程池。

2025-03-20 17:34:49 973

原创 《线程池:线程池资源回收策略修改》

修改线程池资源回收策略,线程池析构要等全部任务执行完毕再析构。

2025-03-20 10:02:39 172

原创 《线程池:Linux平台编译线程池动态库发生的死锁问题》

当把线程池在Linux下编译成动态库时,线程池发生死锁问题,通过分析发现Linux平台和Windows平台下关于信号量的析构函数实现不一样,进而解决线程池在Linux平台上运行死锁的问题。

2025-03-19 22:54:46 617 1

原创 《Linux:动态库动态链接与静态库静态链接》

静态库与静态链接、动态库与动态链接、运行动态库的四种方式、动静态库的加载。

2025-03-19 20:09:10 1698

原创 《C++知识梳理及常见面试题》

C++知识梳理,常见面试题。

2025-03-16 23:00:48 907 2

原创 《线程池:死锁问题情况分析》

在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++11 暗藏玄机:好用的新东西究竟有啥?》

右值引用与移动语义、可变参数模板、function适配器、bind适配器、线程库......

2025-03-12 14:34:43 424

原创 《C++ 类型转换:这是什么造型啊?挺别致啊》

C++四种强制类型转换:static_cast、reinterpret_cast、const_cast、dynamic_cast......

2025-03-11 17:48:48 1041

原创 【C++】特殊类的设计 + 单例模式

特殊类的设计、单例模式、懒汉模式、饿汉模式......

2025-03-11 13:05:13 680

原创 《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

原创 【String】917. 仅仅反转字母

使用双指针,一个指针指向s的开始,一个指向s的末尾,同时遍历即可。

2025-03-03 22:39:33 141

空空如也

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

TA关注的人

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