自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 慢sql优化

3.批量操作:如果每次插入数据库数据,都要连接一次数据库,就会性能下降。进行一次连接,批量插入多条数据,可以优化性能。4.多用limit,如果每次查询,要拿出所有数据,就太消耗时间,可以采用limit。1.避免使用select *,而是明确列出需要的列,2.小表驱动大表,in适用于左边大表,右边小表。exists适用于左边小表,右边大表。

2024-03-17 18:26:08 144

原创 图片速记深浅拷贝区别

浅拷贝:会创建出一个对象,但是新的对象里面元素是对原来对象的引用,如果原来对象改变,创建的这个对象也会改变。深拷贝:完全拷贝一个对象。

2024-03-17 15:27:04 294

原创 模拟实现string类

首先,让我们看一下自定义的Stringprivate:// 字符串缓冲区指针// 字符串长度// 缓冲区容量public:// 构造函数// 带参构造函数// 拷贝构造函数// 析构函数~String();// 存取字符// 获取迭代器// 获取字符串长度和容量// 修改字符串长度// 分配内存,可能不改变长度// 清除字符串内容// 添加字符串// 在指定位置插入字符串// 从指定位置删除指定长度的字符// 查找指定子字符串的位置。

2024-03-15 16:08:40 299

原创 力扣98:验证二叉搜索树

基于以上特点,我们可以在实现BST相关算法时利用这些特性,比如验证BST的有效性。

2024-03-15 14:37:24 394

原创 力扣45:跳跃游戏2

本题是一个典型的贪心算法问题,通过维护两个指针,我们可以在一次遍历中找到到达数组末尾的最小跳跃次数。这种方法时间复杂度较低,适用于较大规模的数组。

2024-03-13 17:05:15 422

原创 力扣121:买卖股票的最佳时机

利用分治思想,数组中代码的状态只有递增或者递减。递增:计算与最小值的差值。

2024-03-13 14:49:26 518

原创 力扣80:删除排序数组中的重复项 II

通过上述双指针的方法,我们可以在 O(n) 的时间复杂度内解决这个问题,同时不使用额外的空间,满足了题目的要求。

2024-03-13 14:33:19 661

原创 深入探讨C++ STL中Vector容器的设计思想

在C++标准模板库(STL)中,Vector容器是一个非常常用的数据结构,它提供了动态数组的功能,能够在运行时动态增加或减少其大小。在本文中,我们将深入探讨Vector容器的设计思想,包括其内部实现、扩容策略、迭代器失效以及一些经典面试问题。

2024-03-11 16:16:14 937

原创 模拟实现一个简化版Vector

模拟实现简化版vector

2024-03-11 15:21:37 68

原创 解压操作哦

敬请期待。

2024-03-09 23:22:29 95

原创 深入理解数据压缩流程及 zlib 库中相关函数

设置压缩器参数:初始化压缩器并设置相关的参数,包括压缩级别、压缩方法、窗口大小等。传递待压缩数据:将待压缩的数据传递给压缩器。执行压缩:执行压缩操作,并将压缩后的数据写入输出缓冲区。写入压缩后的数据:将压缩后的数据写入到输出文件或输出流中。结束压缩:释放压缩器所占用的资源,并结束压缩操作。在下面的示例中,我们将详细讨论每个步骤,并演示如何使用 zlib 库中的函数来实现这些操作。

2024-03-09 23:19:10 1454

原创 第三方库认识: MySQL数据库API详解

返回连接成功后的句柄,若失败则返回NULL。以上是MySQL数据库API中常用函数的介绍及使用方法,通过深入理解这些函数,我们能够更加灵活地编写与MySQL数据库交互的C语言程序。此函数用于初始化MySQL操作句柄,若参数为NULL,则会动态分配句柄空间进行初始化。这两个函数用于获取结果集中的行数和列数,分别返回uint64_t类型和unsigned int类型的值。传入MySQL句柄和数据库名称,若成功则返回0,失败返回非0。传入MySQL句柄和SQL语句字符串,若成功则返回0,失败返回非0。

2024-02-06 16:13:31 368

原创 使用MySQL C API实现数据的增删改查操作详解

本文介绍了如何使用MySQL C API实现数据的增删改查操作,并且讨论了一些细节问题。通过深入理解MySQL C API的使用方法,可以更好地编写数据库相关的C程序,并确保程序的稳定性和安全性。希望本文能够帮助读者更好地理解MySQL C API,并在实际项目中得到应用。

2024-02-06 16:09:48 431

原创 深入解析 jsoncpp 库的关键函数和类

JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,其在不同编程语言中的解析和生成工具变得愈发重要。在C++中,jsoncpp库提供了一套强大而灵活的工具,用于处理 JSON 数据。在本篇博客中,我们将深入探讨 jsoncpp 库中的关键函数和类,以帮助开发者更好地理解如何使用这些功能。

2024-02-05 21:15:45 417

原创 jsoncpp实现序列化反序列化使用流程

首先,你需要包含jsoncpp库的头文件,以便在你的代码中使用相关的类和函数。这个对象可以存储各种类型的数据,包括字符串、整数、浮点数、数组和嵌套的JSON对象。通过以上步骤,你可以使用jsoncpp库在C++中进行JSON数据的序列化和反序列化操作。在使用jsoncpp进行序列化或反序列化之前,你需要创建一个。如果你有一个JSON格式的字符串,想要将其转换为。对象序列化为JSON格式的字符串,你需要使用。根据你的数据结构,将需要序列化的数据填充到。对象转换为JSON格式的字符串。来配置反序列化的参数。

2024-02-05 18:58:45 633 1

原创 【C++11】auto,decltype,nullptr关键字

总的来说,C++11的这些声明关键字为我们提供了更灵活、更安全的编程手段。auto简化了变量声明,decltype增强了对表达式类型的控制,而nullptr则提高了指针操作的安全性。这些特性的引入使得C++编程更加现代化、高效和可靠。

2023-12-15 10:07:12 425

原创 【C++11】之列表初始化

在 C++98 中,列表初始化是通过使用花括号{}对数组或结构体元素进行初始化的一种语法。这种语法的引入使得初始化操作更为统一,并提供了一种清晰而简洁的方式。然而,在 C++98 中,这种初始化方式的适用范围相对有限,仅限于数组和结构体。是 C++11 引入的一种用于表示初始化列表的标准库类型。它的主要作用是作为构造函数的参数,方便地进行初始化操作。通过统一列表初始化和的引入,C++11在初始化方面提供了更为一致、灵活和方便的语法,为代码编写和维护带来了显著的便利。

2023-12-15 09:43:34 1138

原创 网络编程中的地址转换函数详解

在网络编程中,经常需要进行点分十进制字符串表示的IP地址和in_addr结构体表示的IP地址之间的转换。以下是一些常用的地址转换函数,以及它们的使用方法。

2023-11-20 14:14:47 178 1

原创 构建简单而强大的UDP服务器:深入探讨基本步骤

UDP是一种面向数据报的协议,它不提供连接的稳定性和可靠性,而是专注于快速地将数据报从一个节点发送到另一个节点。相比于TCP,UDP更适用于对实时性要求较高、可以容忍少量数据丢失的场景,比如音频、视频传输等。

2023-11-20 13:48:29 475 1

原创 【C】可变参数函数

可变参数函数,也称为变参函数,是一类可以接受不定数量参数的函数。与普通函数不同,它的参数列表中包含一个或多个可变参数,通常使用省略号...来表示。这些函数是 C 语言中用于处理可变参数的输出函数,它们是标准库提供的函数。它们都具有格式化输出的功能,同时支持可变数量的参数。

2023-11-15 22:31:20 227

原创 在CentOS 7上安装MySQL指南

现在,你已经成功在CentOS 7上安装了MySQL,并进行了一些基本的配置。根据你的需要,你可以进一步配置MySQL,创建数据库和用户,以满足你的应用程序需求。这是一个简要的安装指南,如果你遇到任何问题,请随时咨询。根据上一步的结果,卸载不需要的MariaDB或MySQL安装包。检查系统中是否安装了MariaDB或MySQL的相关包。安装下载的MySQL源,并检查系统中的yum源。根据配置文件的更改,重启MySQL服务。,下载适用于你系统版本的MySQL源。启动MySQL服务,并检查服务状态。

2023-11-08 20:22:24 73 1

原创 【数据库】理解MySQL数据库操作

MySQL是一种关系型数据库管理系统,其优势在于开源、高性能、可靠性和广泛的应用领域。以下是MySQL的一些主要特点:1.开源性质MySQL的开源性质使得用户可以免费获取、使用和修改其源代码。这促进了全球开发者社区的共同努力,不断优化系统性能。2.高性能MySQL以其出色的性能而著称,特别适用于需要大量读取操作的应用场景。其高效的查询执行和优化机制使得数据检索变得更加迅速。3.可靠性与稳定性作为一个成熟的数据库系统,MySQL具备高度的可靠性和稳定性。

2023-11-08 20:15:33 217 1

原创 【Linux线程】线程 VS 进程

2023-11-07 11:02:54 72

原创 【Linux内存】页表详解

操作系统是计算机系统中的一种软件,它充当计算机硬件和应用程序之间的中介,为用户和其他软件提供了一个友好的接口,以有效地管理计算机资源。操作系统掌控着计算机的各个部分,包括处理器、内存、存储设备、输入/输出设备等。进程管理:控制和协调正在运行的程序,以便它们可以正确地共享计算机资源。内存管理:分配和管理内存,以便应用程序能够访问所需的内存空间。文件系统管理:管理文件和目录,使数据可以被组织和持久化存储。设备管理:管理计算机的硬件设备,例如键盘、鼠标、磁盘驱动器、网络接口等。

2023-11-07 10:28:44 706

原创 【Linux信号】信号超详解!!!

信号在Linux中具有重要的作用,它们是一种进程间通信和进程控制的机制,对于操作系统和应用程序都至关重要。信号是一种轻量级的进程间通信机制,允许一个进程向另一个进程发送异步通知或请求。这对于协调多个进程的活动非常有用,例如父子进程之间的通信、进程组间的通信等。信号可以用于控制进程的行为,如终止进程、暂停进程、恢复进程、重新加载配置等。管理员和操作系统可以使用信号来管理系统中运行的进程。信号用于处理进程发生的异常情况,如除零操作、访问违规内存等。

2023-11-06 14:10:17 140

原创 【Linux多线程】线程概念

线程是现代计算机编程中的关键概念,它们在多任务处理和并发编程中扮演着重要的角色。本文将探讨线程的概念以及它们在Linux操作系统中的应用。我们将了解线程是如何定义的,以及为什么它们在操作系统中如此重要。此外,我们还会强调Linux作为一个支持多线程的操作系统的历史背景。

2023-11-06 12:57:48 326

原创 【Linux进程通信】共享内存

在计算机科学领域,进程通信和共享内存是操作系统和多任务处理的关键概念。它们为不同进程之间的数据交换和协同工作提供了关键的机制。本文将深入探讨这两个概念,从基础概念到实际应用,为你提供全面的了解。

2023-11-01 16:22:06 81 1

原创 【Leetcode】11. 盛最多水的容器

这个题解将解决LeetCode 11题,要求找到可以容纳最多水的容器。我们将采用双指针法来优化解决这个问题的方法。

2023-11-01 08:57:46 341 1

原创 【Linux进程通信】命名管道

命名管道(Named Pipes)是一种强大的进程间通信工具,通常被广泛应用于Linux和Unix系统。在计算机科学中,进程间通信是一项重要的任务,因为它允许不同的进程在系统中协同工作。命名管道是一种特殊的文件类型,它允许进程之间通过文件系统进行双向通信。这意味着不同的进程可以通过读取和写入命名管道来交换数据,而无需显式地了解彼此的存在。本文将深入探讨命名管道的重要性以及它在进程间通信中的广泛应用领域。

2023-10-31 09:20:22 350 1

原创 【Linux进程通信】匿名管道

管道通信的原理是通过操作系统内核维护的缓冲区,在一个进程写入数据时,将这些数据存储在缓冲区中,然后另一个进程可以从缓冲区中读取这些数据。通常,父进程创建管道并拥有它的写端,而子进程继承了管道的读端,这允许父子进程之间协同工作。这个调用非常简单,它的目的是创建一个用于进程间通信的通道,其中一个进程可以将数据写入通道,而另一个进程可以从通道中读取数据。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另 一个进程的所有陷入和异常,并能够及时知道它的状态改变。

2023-10-30 14:49:27 200

原创 VScode/Linux基础操作

一旦连接到远程主机,你可以在 VS Code 中像在本地机器上一样编辑、运行和调试代码。要把"program"后面的内容改成你的可执行文件名称,例如图中: mycode。VS Code 提供了强大的远程开发工具,包括远程终端、文件同步和扩展支持。

2023-10-30 09:34:07 274

原创 深入探讨C语言文件操作

在C语言编程中,文件操作是不可或缺的一部分。这些操作允许我们与磁盘上的文件进行交互,进行读取、写入和管理文件的各种操作。在本篇博客中,我们将深入探讨C语言文件接口,涵盖了一些关键函数和概念,以帮助你更好地理解如何在C程序中处理文件。

2023-10-25 20:10:51 63

原创 【C语言】指针学习

指针数组是一个数组,其元素都是指针。这些指针可以指向不同的数据或对象。

2023-10-25 14:49:07 270

原创 C/C++的内存管理,看这一篇就够了!

当涉及到内存分配和释放的函数时,细节和示例代码可以帮助更好地理解它们的用法。下面我将展开讨论C语言的malloccallocreallocfree,以及C++的new和delete,并提供相关示例代码。

2023-10-24 20:03:55 74

空空如也

空空如也

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

TA关注的人

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