C++
文章平均质量分 76
一岁就可帅-
那些在暗处执拗生长的花,终有一日会馥郁传香
展开
-
【CMake】一、CMake 介绍
CMake 是一个开源、跨平台的构建系统,主要用于软件的构建、测试和打包。CMake 使用平台无关的配置文件 CMakeLists.txt 来控制软件的编译过程,并生成适用于不同编译器环境的项目文件。例如,它可以生成 Unix 系统的 Makefile、Windows 下的 Visual Studio 项目文件或 Mac 的 Xcode 工程文件,从而简化了跨平台和交叉编译的工作流程。CMake 并不直接构建软件,而是产生标准的构建文件,然后使用这些文件在各自的构建环境中构建软件。原创 2024-09-26 20:27:37 · 1630 阅读 · 0 评论 -
【哈希】:从基础到应用
α是散列表装满程度的标志因子。由于表长是定值,a与“填入表中的元素个数”成正比,所以,α越大,表明填入表中的元素越多,产生冲突的可能性就越大:反之,越小,标明填入表中的元素越少,产生冲突的可能性就越小。实际上,散列表的平均查找长度是载荷因子α的函数,只是不同处理冲突的方法有不同的函数。对于。原创 2024-08-08 17:45:14 · 904 阅读 · 0 评论 -
了解红黑树:高效平衡二叉搜索树
/ 节点的颜色// 红黑树节点的定义{}// 节点的左孩子// 节点的右孩子// 节点的双亲(红黑树需要旋转,为了实现简单给出该字段)// 节点的值域// 节点的颜色不能有两个连续的红色节点。如果我们将新插入的节点默认设置为黑色,那么插入操作可能会导致树中违反这一性质的情况。通过将新节点设置为红色,我们可以更方便地进行调整,而不会破坏树的黑色节点平衡。原创 2024-08-07 21:24:13 · 902 阅读 · 0 评论 -
【C++】C/C++内存管理
调用operator new函数申请空间在申请的空间上执行构造函数,完成对象的构造什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。原创 2024-07-19 18:49:33 · 1033 阅读 · 0 评论 -
【C++】C++拷贝构造引发的无限递归问题及其解决方法
拷贝构造函数是一种特殊的构造函数,用于通过另一个对象来初始化新对象。public:// 复制 other 的数据成员当一个对象以另一个对象为初始值进行初始化时(例如通过传值参数、返回值、显式拷贝等),会调用拷贝构造函数。原创 2024-06-28 11:08:03 · 558 阅读 · 0 评论 -
【数据结构】二叉树
二叉树是一种树形结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的根节点是树的起点,其他节点通过根节点及其子节点逐层连接形成树状结构。节点(Node):二叉树的基本元素,每个节点包含一个数据元素以及指向其左右子节点的指针。根节点(Root Node):树的起点节点。叶子节点(Leaf Node):没有子节点的节点。子树(Subtree):以某个节点为根的树。原创 2024-06-26 14:39:51 · 963 阅读 · 0 评论 -
【C++】哈夫曼编码:高效的压缩算法
哈夫曼编码是一种用于数据压缩的无损编码方法,由David A. Huffman于1952年提出。它利用了字符出现频率的不均匀性,通过构建最优前缀码,能够有效减少数据的冗余,从而实现高效的压缩。原创 2024-05-26 20:20:20 · 610 阅读 · 0 评论 -
【C++】牛客——春游
首先我们可以计算双人船和三人船中每个玩家的花费,我们要在尽可能的情况下选择单价少的船优先安排。如果剩下一个人,那么就考虑是给他新添一艘船或者拿掉一个a,和之前2个人一起去坐3人船。接下来 T 行每行给出三个正整数𝑛,𝑎,𝑏,1≤𝑛,𝑎,𝑏≤10^9 ,含义如题。说明我们要先尽可能安排三人船坐满,那么与上面类似,我们可能留下。三人船最多坐三人,也可以坐两人或者一人,收费b元。如果恰n%2==0,那就不需要额外安排船,盼望着,盼望着,东风来了,春天脚步近了。双人船最多坐两人,也可以坐一人,收费a元。原创 2024-05-20 17:03:59 · 1364 阅读 · 0 评论 -
【C++】STL——list介绍
list 是 C++ 标准模板库(STL)中的另一个常用容器,它是一个双向链表,提供了一组丰富的接口来管理元素集合。构造函数list(): 创建一个空的 list。: 创建包含 count 个值为 value 的元素的 list。: 复制另一个 list。: 使用初始化列表创建 list。赋值操作符operator=: 将一个 list 赋值给另一个 list。: 用范围 [first, last) 内的元素替换当前 list 的内容。原创 2024-04-22 20:14:10 · 1606 阅读 · 0 评论 -
【C++】容器:vector的接口介绍大全
vector():创建一个空的 vector。:创建包含 count 个值为 value 的元素的 vector。:复制另一个 vector。:使用初始化列表创建 vector。:创建一个 vector,其元素由范围 [first, last) 内的元素初始化。operator=:将一个 vector 赋值给另一个 vector。:用范围 [first, last) 内的元素替换当前 vector 的内容。:用 count 个值为 value 的元素替换当前 vector 的内容。原创 2024-04-17 16:17:05 · 2425 阅读 · 0 评论 -
【C++ 】string——字符串常用函数接口详解
在C++中,string是一个表示字符串的数据类型。它是C++标准库中的一部分,可以通过包含 "string" 头文件来使用。原创 2024-04-16 14:00:12 · 1126 阅读 · 0 评论 -
【C++】vector的模拟实现
vector。原创 2024-04-14 17:19:08 · 462 阅读 · 0 评论 -
【C++】string的模拟实现
模拟标准库中的string。原创 2024-04-12 15:30:32 · 569 阅读 · 0 评论 -
【C++】深入理解 C++ 中的 auto 关键字
我们可以让编译器根据变量初始化表达式的类型来确定变量的类型,而无需手动指定。这样可以简化代码,尤其在涉及模板和迭代器等复杂类型时,更为方便。在 C++11 标准中引入了 auto 关键字,它是一项强大的特性,可以大大简化代码的书写,同时提高代码的可读性和灵活性。关键字用于在声明变量时,由编译器自动推导变量的类型。原创 2024-04-11 11:55:33 · 508 阅读 · 0 评论 -
【C++】C++入门
缺省参数是指在定义函数时,为某些参数提供默认值。当调用函数时,如果不提供这些参数的值,则函数会使用其默认值。这样做可以使函数调用更加灵活,简化代码。函数重载是指在同一个作用域内,可以定义多个名称相同但参数列表不同的函数。这样做的好处是,可以使用相同的函数名来表示不同版本的函数,根据参数的不同类型或数量,编译器会自动选择合适的函数进行调用。引用是C++中的一种别名,它允许我们为一个已经存在的变量或对象创建一个别名。引用提供了一种更方便的方式来操作变量,同时可以避免不必要的内存开销和复制。原创 2024-04-10 11:53:38 · 1283 阅读 · 0 评论 -
【C++】深入理解C++命名空间
命名空间是C++中一种用于组织代码的机制,可以将一组相关的名称封装在一起,以避免名称冲突。通过使用命名空间,我们可以将全局作用域内的名称划分为更小的范围,以提高代码的可维护性和可读性。让我们通过一个示例来说明命名空间的用法。假设我们有一个名为Math的命名空间,其中包含一些数学函数。// 定义命名空间 Math// 定义一个常量 PI// 定义一个函数,计算圆的面积std::cout原创 2024-04-09 17:32:57 · 839 阅读 · 0 评论