因为山就在那里

第一次爬北京的山,看到了不一样的风景,也收获到了意外的体验。虽说是3A级景区,但这次给我的体验远不止3A,恰巧赶上了日落,路上遇到了小猫,2000多米的爬山体验,给我的感觉是,棒极了。

阅读更多...

vscode写markdown文件中的tab缩进错误显示问题

用vscode写Markdown时tab键在网页上缩进错误问题

问题描述

这两天在写博客时,遇到了一个奇怪的错误,就是在博客上传到网站上预览时,代码块中用tab键缩进的空格变成了8空格。我平时用vscode来编写博客,在本地渲染预览时没有问题,显示为4个空格,然而传到博客网站上时就变成8空格,有些奇怪。

博客网站上显示:

缩进问题.png

阅读更多...

STL--vector容器(构造、遍历、插入删除、容量大小、数据存取、动态扩容等)

vector

前言

这几天在写代码的时候用到STL较多,也感受到了STL的强大,于是我重新温习了一遍STL的内容,并把一些基础的东西,重要的内容总结提炼出来,这篇是vector篇。C++的STL给我们提供了很多可用的容器,vector就是最常用的容器之一,vector应该掌握的基础内容包括构造函数、元素的插入插入删除、赋值、存取等操作。重点内容应该掌握vector的扩容机制、内存大小的变化原理等。

阅读更多...

STL解析

C++中的神兵利器 —— STL

前言

STL是C++开发学习中的重要一环,因为它使得我们在开发过程中能够更便捷、高效地实现我们想要的操作。此前我也系统地学过了一遍STL,这些天再次学习回顾,发现了不少新东西,于是乎我决定把一些重要的知识点以及自己的理解总结记录下来,下面我们一起来学习交流吧。

STL介绍

  • STL(Standard Template Library),其实就是标准模板库,其中包含有大量的模板类和模板函数,可以供C++的开发者使用,其高效、便捷、安全可靠。
  • STL 最初由惠普实验室开发,于 1998 年被定为国际标准,正式成为 C++ 程序库的重要组成部分。值得一提的是,如今 STL 已完全被内置到支持 C++ 的编译器中,无需额外安装,这可能也是 STL 被广泛使用的原因之一。
  • 通俗的来说,STL其实就是一些容器、算法及其他的一些组件的集合,是一个很棒的库,有了这个库,我们就可以直接使用、调用这个库里的东西来完成一些操作,就不用再重复造一些轮子了,大大提高了开发效率,这也是为什么STL在C++编程中重要的原因。

六大组件

STL的设计思想是将数据结构和算法进行分离,使得他们可以独立使用和扩展,提高了代码的复用性和可读性。
STL主要包含六大组件:

  • 容器(Containers):如动态数组(vector)、链表(list)、双端队列(deque)、对(pair)、
    映射(map)、集合(set)等
  • 算法(Algorithms):如排序、查找、合并、计数等。
  • 迭代器(Iterator):是一种抽象的数据类型,可用于访问容器中的元素,STL中的五种迭代器:输入迭代器(Input Iterator)、输出迭代器(Output Iterator)、前向迭代器(Forward Iterator)、双向迭代器(Bidirectional Iterator)和随机访问迭代器(Random Access Iterator)
  • 仿函数(Functor):就是使一个类的使用看上去像一个函数。如加减乘除、大小比较等
  • 适配器(Adaptor):其实就是一种基于基础容器来实现的一些带有特定功能的容器模板类。如stack、queue、priority_queue等、
  • 空间配置器(Allocator):用得最少的,但是它总是隐藏在一切组件的背后,默默工作。通俗的说,整个STL的操作对象都存放在容器之中(vertor、list),而容器一定需要配置空间以放置资料,这就是空间配置器的作用。

一、容器

序列式容器

vector

deque

list

补充:C++标准库中的String类

关联式容器

二、算法

三、迭代器

四、仿函数

五、适配器

六、空间配置器

如何将两个很大的数进行相加?

经典大数相加算法、高精度加法

引言

先上一道题LC415.字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。


对于这道题,可能很多朋友会想到将两个字符转为数字,然后将其进行相加,最后将结果再转为字符串。这种方式可行,但是如果数字非常大呢?大到连long long 都不够加呢?那我们就得请出我们的主角:高精度加法

阅读更多...

数据结构——堆(向上调整法/向下调整法、建堆、堆排序、TopK问题)

一、堆的基本概念和性质

堆(heap)是一个完全二叉树,并且满足以下性质:每个节点的值都大于或等于其左右孩子节点的值,称为大根堆;或是每个节点的值都小于或等于其左右孩子的值,称为小根堆。

复习:完全二叉树
设二叉树的深度为h,除第h层外,其它各层(1 ~ h-1)的节点数都达到最大个数,第h层所有的节点都连续集中在最左边,这就是完全二叉树。

完全二叉树:
完全二叉树.png

阅读更多...

“落子无悔,抉择本身就是向前”——2022年度总结

1、前言

岁月不居,时节如流。一转眼,2022年已经来到了尾声,这一年里,经历了高考,度过了18岁的生日,踏上了大学的校园,遇见了许许多多的人,也经历了许许多多的事。这一年,对我来说,没有所谓的轰轰烈烈, 也没有所谓的刻骨铭心,吃过很多亏,做过很多傻事,当然,我也收获很多。年末之际,对此做些回顾与梳理,不失为一种享受,也算是对自己的反思总结。

阅读更多...
  • Copyrights © 2022-2025 Capper
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信