自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 问答 (13)
  • 收藏
  • 关注

原创 STL多种容器和算法的时间复杂

STL(Standard Template Library)提供了多种容器和算法,每种操作的时间复杂度不同。以下是主要容器及其常用操作的时间复杂度分析。根据需求选择合适容器可显著优化性能!

2025-06-10 19:59:22 884

原创 深入理解C++中的元组(tuple):现代C++的多面手

摘要:本文介绍了C++11中的std::tuple(元组),它是一种存储不同类型元素的固定大小容器。文章详细讲解了元组的创建方法(直接构造、make_tuple、C++17类模板推导)、元素访问方式(std::get、结构化绑定、std::tie)以及高级特性(比较操作、元组拼接、多值返回)。通过示例代码展示了tuple在实际编程中的应用,帮助开发者编写更现代、高效的C++代码。

2025-06-06 21:59:57 221

原创 快速排序算法的证明与边界分析

本文介绍了快速排序算法的基本原理和实现方法。快排采用分治策略,通过选取基准元素将数组分为两部分递归排序。文章提供了以j为分界的快排模板代码,并解释了分区和递归处理的过程。同时通过两道例题展示了快排的应用:一道基础排序题演示了标准快排实现;另一道求第k小元素的题目展示了如何用分治思想在O(n)时间复杂度内解决问题。代码示例包含详细注释,帮助理解快排的核心思想和具体实现细节。

2025-06-01 12:23:02 374

原创 c++集合的基础知识(有例题)

本文对比了C++与Python中集合的实现与特性。C++提供有序的set(红黑树)和无序的unordered_set(哈希表),前者操作时间复杂度为O(log n),后者平均O(1)。文章详细介绍了unordered_set的创建、初始化方法及常用操作,包括插入、查找、删除元素等。针对自定义类型,需提供哈希函数和比较函数。Python集合基于哈希表实现,具有类似特性但语法更简洁。通过对比,开发者可根据需求选择合适实现,有序场景用set,快速查找用unordered_set。

2025-05-28 17:31:09 176

原创 2025年计算机二级python考后心得

计算机二级的含金量确实比较低的,比如说考试内容滞后,题库重复率高,存在"背题过考"现象(我昨天晚上看的题都考到了几道😅)企业招聘几乎不看此证书(相比下,计算机专业更认PAT/CSP认证)。今天刚刚考完计算机二级,我是大一萌新第一次参加这个考试,还记得上学期刚入学时,还有培训机构来班里宣传,说什么"编程语言类难度爆表,建议报WPS班更容易过"。虽然考试很简单但是考试的过程还是很严格的,先要扫脸进考场,再由监考老师检查随身物品,检查了几次身份证和准考证,考试的威严感还是很足的。

2025-03-29 22:26:11 482 2

原创 C++中的std::greater:理解与实用指南

在C++标准库中,std::greater是一个非常有用的函数对象(functor),它提供了一种简单的方式来实现"大于"比较操作。这篇博客将深入探讨std::greater的工作原理、使用场景以及在实际编程中的应用技巧。

2025-03-29 21:23:44 327

原创 手写滑动窗口(AcWing 154. 滑动窗口)

当 n 和 k 都很大时,例如 n = 10^6,k = 10^5,暴力解法就会非常耗时。但是正常比赛当中我们不可能全部都手搓,这里就要用到STL里面的deque了。我们用一共数组q[N]来模拟队,front来表示队头,tail来表示队尾。使用单调队的方法可以让我们更快的找到窗口的最小值和最大值。为了降低时间复杂度,我们需要一种更高效的方法。

2025-02-23 21:47:27 371

原创 C++ STL 中的 list 容器:用法与实现详解

链表作为一种动态结构,能够根据需要的在运行时灵活的插入、删除数据元素,而且它对储存单元没有过高的要求,不一定要求核内存是连续的、整块单元。相对于数组、字符串,由于 链表存储不连续,因此不能实现对它的随机访问。在链表中查找、定位数据元素效率较低。无论如何,在很多问题中,链表还是能大展身手的,并高效的解决问题。链表(Linked List)是一种线性数据结构,由一系列**节点(Node)**组成。每个节点包含两个部分:数据域:存储实际的数据。指针域:存储指向下一个节点(或上一个节点)的地址。

2025-02-21 23:32:06 1579 1

原创 深入理解C++字符串:从基础到实践

关于字符串的知识介绍

2025-02-12 16:58:53 172

原创 STL里面的vector容器

vector作为序列容器,简化了数组的使用,除了保留c++的数组优点外,还提供了方便而灵活的函数,不少算法也可以运用到vector中。值得注意的是vector v4(v1.begin(), v1.end());这种使用迭代器范围来初始化 vector 的方式,在一定条件下可以用于将其他序列容器转化为vector。(v.begin()是获取第一个元素位置,v.end()是获取最后一个元素的位置)先来介绍一下vector的构造和赋值吧。在熟悉vector的构造和赋值后我们再来学习vector的增加和删除。

2025-02-03 16:35:12 582 2

原创 二分算法的模板(没有多的废话)

二分算法的一些模板

2025-02-01 22:22:07 167

空空如也

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

TA关注的人

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