C/C++
文章平均质量分 58
Stef若木
这个作者很懒,什么都没留下…
展开
-
CMake常用指令
尖括号:必选变量,方括号[ ]:可选变量,[E]竖线 | :或的意思,A|B|C参数之间使用空格或分号分开0.2 指令是大小写无关的,参数个变量是大小写相关的0.3 变量使用${}方式取值,但是在IF控制语句中是直接使用变量名。原创 2023-03-14 15:04:23 · 523 阅读 · 0 评论 -
C++ vector多维数组初始化
一维数组初始化:其中vec: 数组名;n: 数组大小vector<int> vec(n);vector<int> vec(n, 0);二维数组初始化:其中 vec: 数组名;rows: 数组行数;cols: 数组列数。vector<vector<int>> vec(rows, vector<int>(cols, 0));三维数组初始化:vector<vector<vector<in.原创 2021-12-22 14:26:37 · 2216 阅读 · 0 评论 -
声明中有const如何理解
三条rule1. 永远从右往左读一个变量声明。2. const永远修饰const出现地点左边的声明类型。3. 如果左边没有声明类型,就修饰右边。原创 2021-12-01 14:15:20 · 219 阅读 · 0 评论 -
C++类中有如vector, map等容器类成员时如何编写构造函数
假如一个类的成员函数如下:class A{ int a; vector<int> v; map<int, int> m;};编写构造函数有三种方式:①:默认构造函数②:容器不带参③:容器带参,像普通变量一样,使用 = 赋值;具体如下代码所示:class A{private: int a; vector<int> v; map<int, int> m;public: //默认构造函数; A() = defa原创 2021-11-17 17:09:10 · 1480 阅读 · 2 评论 -
C++实现二叉树相关问题(先序遍历,中序遍历,后序遍历,层序遍历,搜索二叉树、平衡二叉树、满二叉树、完全二叉树的判断,最低公共祖先,二叉树的序列化和反序列化)
题目一 二叉树递归和非递归递归序递归时,如果什么都不做,每个节点被访问的顺序。以上二叉树的递归序为:1, 2, 4, 4, 4, 2, 5, 5, 5, 2, 1, 3, 6, 6, 6, 3, 7, 7, 7, 3, 1基于递归序,对二叉树的遍历分为先序遍历,中序遍历和后续遍历。先序遍历:1, 2, 4, 5, 3, 6, 7(选取第一次出现的节点值,即第一次到达节点的时候打印,二、三次到达节点时什么也不做。)中序遍历:4, 2, 5, 1, 6, 3, 7(选取第二次出现..原创 2021-11-15 14:18:26 · 1853 阅读 · 0 评论 -
C++实现链表相关问题(反转单、双向链表,打印公共部分,判断回文结构,有没有环,链表相交)
0 概述链表分为单向链表和双向链表,在C++容器中为forward_list和list。在解决离链表的问题时,注意链表函数是否需要加返回值,如果链表的调整涉及到换表头的操作,返回值为node类型,不涉及的话,返回值可以为void。题目一:反转单向链表和双向链表。反转单向链表代码:...原创 2021-11-01 22:56:00 · 263 阅读 · 0 评论 -
C++实现十大排序算法(冒泡排序、选择排序、插入排序、希尔排序、归并排序、堆排序、快速排序、计数排序、桶排序和基数排序)
目录0 概述1 冒泡排序2 选择排序3 插入排序4 希尔排序5 归并排序6 堆排序7 快速排序8 计数排序9 桶排序10 基数排序本文为C++实现的十大排序算法及基于排序算法解决的一些常见问题,每一种算法均实际运行,确保正确无误。文中内容为自己的一些理解,如有错误,请大家指正。0 概述在十种排序算法中,前七种是比较类排序,后三种是非比较类排序,每种算法的最好、最坏、平均时间复杂度,空间复杂度以及稳定性如下表所示。稳定性是指排序前后相等的元素相对位置保.原创 2021-09-22 14:31:14 · 1765 阅读 · 4 评论 -
桶排序、计数排序、基数排序
目录1 计数排序2 桶排序3 基数排序除了前面所说的冒泡、选择、插入、希尔、归并、快排和堆排序这些基于比较的排序,还有桶排序、计数排序和基数排序三种非比较的排序,且时间复杂度是线性的。1 计数排序计数排序对于数据有较高要求,必须是有确定范围的整数。1.1 算法实现1)查找数组的最大值,并根据最大值来创建计数数组countArr中元素的个数;2) 统计原数组中各个元素出现的次数,countArr;2) 清空原数组,并根据counArr并重新创建原数组。1...原创 2021-09-16 17:33:57 · 89 阅读 · 0 评论 -
C++中获得int型数组元素个数的方法
sizeof()返回一个对象或类型所占的内存字节数;下面代码中的num_count为数组a[]的元素的个数。int a[] = {1, 3, 4, 2, 7};num_count = sizeof(a) / sizeof(size);原创 2021-09-14 10:21:26 · 1383 阅读 · 0 评论 -
归并排序、堆排序、快速排序
时间复杂度都是归并排序:选择排序:原创 2021-08-31 20:22:23 · 203 阅读 · 0 评论 -
冒泡排序、插入排序、选择排序、希尔排序
时间复杂度均为:O()冒泡排序void bubbleSort(vector<int> a, int n){ if (n <= 1) return a; for (int i = 0; i < n; ++i){ boolean flag = false; for (int j = 0; j < n - i -1; ++j){ if (a[j] > a[j+1]){原创 2021-08-30 10:33:49 · 91 阅读 · 0 评论 -
C++二分查找模板
转自:二分查找二分查找法作为一种常见的查找方法,将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间,具有很大的应用场景,而在LeetCode中,要运用二分搜索法来解的题目也有很多,但是实际上二分查找法的查找目标有很多种,而且在细节写法也有一些变化。根据查找的目标不同,二分查找法主要分为以下三类:第一类: 需查找和目标值完全相等的数这是最简单的一类,也是我们最开始学二分查找法需要解决的问题,比如我们有数组[2, 4, 5, 6, 9],target = 6,那么我们可以写出二分查找法的代码如转载 2021-08-25 13:44:10 · 391 阅读 · 0 评论 -
对取模后余数的理解
转自:对取模后余数的理解取模和取余 通常情况下,取模运算(MOD)和取余运算(REM)被混为一谈,因为在大多数的编程语言里,都用" % " 符号来表示取模运算或者取余运算。所以有必要编写本文档,来为在此环节遇到问题的程序员理清思路,同时也提醒各位需要注意在不同编程语言环境下" % " 运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的。首先,我们需要区分两者的概念。 取模(MOD):给定一个正整数p,任意一个整数n,一定存在等式 :n =...转载 2021-03-30 22:09:15 · 928 阅读 · 0 评论 -
【C++学习】P1 [1.1.1] 导学
1、C++支持的程序设计方法面向过程的程序设计方法 面向对象的程序设计方法 泛型程序设计方法2、C++程序的开发过程算法设计 源程序编辑 编译 连接 运行调试3、信息在计算机中的表示和存储二进制表示...原创 2020-08-15 12:35:19 · 122 阅读 · 0 评论 -
基于Window10使用VScode搭建C/C++开发环境
一、下载并安装VScode VScode下载地址二、下载并安装MinGW2.1、下载MinGW MinGW下载地址,提取码r40j...原创 2020-02-12 20:44:25 · 1496 阅读 · 1 评论