![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
从0开始学C++
文章平均质量分 67
mls学习小记
这个作者很懒,什么都没留下…
展开
-
从0开始学C++ 课程目录
从0开始学C++ 课程目录原创 2024-01-23 09:16:03 · 1072 阅读 · 0 评论 -
从0开始学习C++ 第三十三课 线性搜索和二分搜索
二分搜索是一种在有序数组中查找特定元素的搜索算法。它通过将目标值与数组中间的元素进行比较并根据比较结果缩小搜索范围来工作。线性搜索是一种简单的查找算法,它从数据结构的一端开始,逐一检查每个元素,直到找到所需的元素或搜索到结构的另一端。但是线性搜索不会改变包含相同元素的数组的元素顺序。不过,二分搜索不会改变数组的元素顺序。在最坏的情况下,可能需要检查数组中的每个元素。O(1),二分搜索在原地进行,不需要额外的存储空间。O(1),因为搜索过程中不需要额外的存储空间。O(log n),其中。原创 2024-01-22 21:33:19 · 373 阅读 · 0 评论 -
从0开始学习C++ 第三十二课 希尔排序
希尔排序(也称递减增量排序算法),是插入排序的一种更高效的改进版本。它通过将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,来改进插入排序的性能。,这实质上是一个插入排序,但由于之前的步骤可能已经改变了相等元素的初始顺序,因此希尔排序不是稳定的。否,希尔排序是不稳定的排序算法。由于最终一次排序时,增量为。O(1),因为排序是在原地进行的。原创 2024-01-22 21:32:51 · 399 阅读 · 0 评论 -
从0开始学习C++ 第三十一课 归并排序和堆排序
它将一个数组分成两半,分别对它们进行排序,然后将结果归并成一个有序数组。堆是完全二叉树,其中父节点的值总是大于其子节点。在实际的项目中,通常不会有这么多的注释,但这里为了帮助理解每一步的过程,故添加了详细注释。O(n log n),因为要对 n 个节点进行 log n 次调整。O(n),因为需要与原数组同样大小的空间来存储临时数组。O(n log n),无论是最好、最坏还是平均情况。O(1),因为排序是在原地进行的。是,归并排序是稳定的排序算法。否,堆排序是不稳定的排序算法。原创 2024-01-22 21:32:34 · 349 阅读 · 0 评论 -
从0开始学习C++ 第三十课 插入排序和快速排序
快速排序的最坏情况发生在每次分区操作都将数组分为两个部分,其中一个为空,这通常在数组已经是升序或降序时发生。选定一个元素作为"基准"(pivot),元素比基准小的放在基准前面,比基准大的放在基准后面,相同则任一边均可。插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。最好情况 O(n)(数组已经是有序的),平均和最坏情况 O(n^2)平均情况 O(n log n),最坏情况 O(n^2)O(log n)(递归栈空间)原创 2024-01-22 21:32:00 · 376 阅读 · 0 评论 -
从0开始学习C++ 第二十九课 冒泡排序和选择排序
在这两个排序算法中,冒泡排序是稳定的,而选择排序是不稳定的。稳定性指的是排序后两个相等的元素的相对位置不会改变。空间复杂度都是O(1),因为它们都是原地排序算法,不需要额外的存储空间。冒泡排序是一种简单的排序算法,它通过重复交换相邻的元素,如果它们的顺序错误,就修正它们的位置,直到没有可交换的元素为止。是否稳定:否(选择排序会改变相同值的元素的相对位置)是否稳定:是(相同值的元素的相对位置不会改变)空间复杂度:O(1) (因为它是在原地排序)空间复杂度:O(1) (因为它是在原地排序)原创 2024-01-22 21:31:16 · 357 阅读 · 0 评论 -
从0开始学C++ 第二十八课 数据结构深入 - 栈和队列
以上示例和练习涉及到栈和队列的基本操作,通过实际的代码演示帮助你理解这些结构的工作原理。在实际应用中,栈和队列是非常有用的数据结构,对于理解更复杂的数据结构和算法也是非常重要的基础。编写一个C++程序,创建一个栈和一个队列。首先向栈中压入三个整数:1,2,3,然后依次弹出并打印。接着向队列中加入同样的三个整数,并依次从队列中移除并打印。第二十八课:数据结构深入 - 栈和队列。原创 2024-01-22 21:29:16 · 475 阅读 · 0 评论 -
从0开始学C++ 第二十七课 数据结构入门 - 数组与链表
第二十八课:数据结构入门 - 数组与链表学习内容:数组(Array)链表(LinkedList)原创 2024-01-22 21:29:56 · 900 阅读 · 0 评论 -
从0开始学C++ 第二十六课:理解C++中的Lambda表达式
这个例子演示了Lambda表达式在算法中的应用,以及如何使代码更加简洁易读。函数对其进行排序,排序规则由Lambda表达式提供。之后,再使用带有Lambda表达式的。编写一个C++程序,使用Lambda表达式对一个。进行排序,然后使用Lambda表达式遍历该。然后,使用带有Lambda表达式的。本练习中,我们先创建了一个。原创 2024-01-22 21:17:03 · 393 阅读 · 0 评论 -
从0开始学C++ 第二十五课:C++中的资源管理与智能指针
如果资源仍然存在,我们输出数组的内容。然后,我们创建了一个。被销毁时,数组资源也会被自动释放。本练习中,我们首先创建了一个由。演示资源共享和弱引用的概念。编写一个程序,创建一个。原创 2024-01-22 21:16:46 · 351 阅读 · 0 评论 -
从0开始学习C++ 第二十四课:理解STL(标准模板库)
在本课中,我们学习了STL的基础知识,了解了如何使用STL的容器、迭代器和算法。这些工具在C++编程中非常有用,能够帮助我们更加高效地管理数据和处理复杂的数据结构。容器来建立一个简单的电话簿,其中包含姓名和电话号码。然后通过姓名来查找对应的电话号码,找到后打印出来。原创 2024-01-22 21:14:05 · 329 阅读 · 0 评论 -
从0开始学C++ 第二十三课:C++标准库概述
C++标准库是一组预定义的类和函数,用于实现常见的程序任务,如输入/输出处理、字符串操作、数学计算等。在这个课程中,学生将了解到C++标准库的强大功能,学会使用一些基础但非常重要的容器和算法,这些知识对于理解更高级的C++编程概念至关重要。函数对象(也称为仿函数)是一个行为类似函数的对象,它可以是类实例,重载了。容器是用来管理某一类数据的类模板,如序列和关联容器。算法是作用于容器的函数模板,它们通过迭代器进行工作。算法查找一个特定的整数,并输出是否找到该整数。迭代器是一个对象,它能够遍历容器中的元素。原创 2024-01-22 21:13:34 · 794 阅读 · 0 评论 -
从0开始学C++ 第二十二课:文件操作
然后程序将这些信息保存到一个名为 “userinfo.txt” 的文件中。最后,程序读取这个文件,并将内容打印到控制台。在这个练习中,学生将学会如何获取用户输入,将数据写入文件,并从文件中读取数据。这些技能是文件处理和数据持久化的基础,并且是编程中常见的操作。文件操作通常用于数据持久化,例如保存程序的配置信息,存储用户生成的数据,或读取外部数据文件等。文件流是一种数据流,它从文件中读取数据或向文件中写入数据。(输出文件流)创建文件并向文件写入数据,使用。(输入文件流)从文件读取数据,以及使用。原创 2024-01-22 21:13:09 · 368 阅读 · 0 评论 -
从0开始学习C++ 第二十一课:异常处理
可以通过继承。原创 2024-01-22 21:12:48 · 888 阅读 · 0 评论 -
从0开始学习C++ 第二十课:模板与泛型编程
当需要创建可在多种数据类型之间进行操作的函数或类时,模板是非常有用的。函数模板如何用于不同类型的数据,展示了模板在编写泛型代码中的强大能力。通过学习模板,我们可以提高代码的重用性和灵活性。模板是C++中支持泛型编程的一种工具,它允许程序员编写与数据类型无关的代码。例如,你可以创建一个泛型的。函数模板允许你编写一个适用于任何数据类型的函数。函数模板来交换它们的值,并打印出交换前后的结果。,它接受两个同类型的参数并交换它们的值。函数中,创建两个整数和两个字符串,使用你的。类,可以存储任何类型的数组。原创 2024-01-22 21:10:41 · 408 阅读 · 0 评论 -
从0开始学习C++ 第十九课:多态和虚函数
第十九课:多态和虚函数原创 2024-01-22 21:12:16 · 351 阅读 · 0 评论 -
从0开始学C++ 第十八课:继承
第十八课:继承原创 2024-01-21 14:45:41 · 395 阅读 · 0 评论 -
从0开始学C++ 第十七课:运算符重载
第十七课:运算符重载原创 2024-01-21 14:45:26 · 394 阅读 · 0 评论 -
从0开始学C++ 第十六课:C++中的初始化列表和构造函数初始化
第十六课:C++中的初始化列表和构造函数初始化原创 2024-01-21 14:44:44 · 363 阅读 · 0 评论 -
从0开始学C++ 第十五课:类的构造函数和析构函数
第十五课:类的构造函数和析构函数原创 2024-01-21 14:44:10 · 384 阅读 · 0 评论 -
从0开始学习C++ 第十四课:类和对象
第十四课:类和对象原创 2024-01-21 14:43:53 · 400 阅读 · 0 评论 -
从0开始学习C++ 第十三课:结构体和联合体
第十三课:结构体和联合体原创 2024-01-21 14:43:35 · 416 阅读 · 0 评论 -
从0开始学习C++ 第十二课:指针强化
第十二课:指针强化原创 2024-01-21 14:42:47 · 556 阅读 · 0 评论 -
从0开始学习C++ 第十一课:常量
第十一课:常量原创 2024-01-21 14:42:25 · 422 阅读 · 0 评论 -
从0开始学习C++ 第十课:指针与数组关系及指针偏移量
第十课:指针与数组关系及指针偏移量原创 2024-01-21 14:42:04 · 721 阅读 · 0 评论 -
从0开始学习C++ 第九课:数组与字符串
数组与字符串原创 2024-01-21 14:41:40 · 365 阅读 · 0 评论 -
从0开始学习C++ 第九课:数组与字符串
数组与字符串原创 2024-01-21 14:41:04 · 932 阅读 · 0 评论 -
从0开始学C++ 第八课:指针与引用
指针与引用原创 2024-01-21 14:40:00 · 802 阅读 · 0 评论 -
从0开始学习C++ 第七课:函数
第七课:函数原创 2024-01-21 14:39:08 · 404 阅读 · 0 评论 -
从0开始学C++ 第六课:控制流程和循环结构
第六课:控制流程原创 2024-01-21 14:38:45 · 368 阅读 · 0 评论 -
从0开始学C++ 第五课:C++ 运算符和表达式
四课:C++ 运算符和表达式原创 2024-01-21 14:37:56 · 371 阅读 · 0 评论 -
从0开始学C++ 第四课:常用C++编辑器和集成开发环境(IDE)的使用
第三课:常用C++编辑器和集成开发环境(IDE)的使用原创 2024-01-21 14:37:35 · 641 阅读 · 0 评论 -
从0开始学习C++ 第三课:变量和基本数据类型
第二课:变量和基本数据类型原创 2024-01-21 14:36:52 · 446 阅读 · 0 评论 -
从0开始学习C++ 第二课:C++中的输入和输出(I/O)
第二课:C++中的输入和输出(I/O)原创 2024-01-21 14:36:32 · 941 阅读 · 0 评论 -
从0开始学习C++ 第一课:你的第一个C++程序
从0开始学C++第一课:你的第一个C++程序当然可以。原创 2024-01-21 14:35:22 · 491 阅读 · 0 评论