C++学习笔记
胡仙剑
车间调度.MES系统.C++个人爱好者
展开
-
(笔记)强烈推荐几个学习数据结构和算法的网站和可视化工具
笔记转载 2023-02-21 22:05:48 · 346 阅读 · 0 评论 -
C++野指针和空指针
一个表示0值的整数常量,叫做空指针常量。例如:0、0L、1-1(它们都是值为0的整数常量表达式)以及(void*)0、void* NULL 都是空指针常量,空指针常量可以赋值给任何指针类型,因为它是变体类型(void*)。但是我们更倾向于使用NULL表示这个空指针常量。对于其它方式(比如0)来表示空指针常量虽然不会产生任何问题,但是在根本意义上并不符合空指针常量的定义。因为空指针常量的存在意义还在强调它并不指向任何对象(后面会讲细节)。原创 2022-11-16 11:20:27 · 419 阅读 · 0 评论 -
C中p、*p和&p三者的区别以及*p和**p的区别
指针变量p既然是变量,也同变量a一样对应一个小盒子,也有一个地址编号,&p就是取指针p的地址。int **p :二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针(即p指向的地址里面存放的是一个指向int的一级指针)先理解地址和数据,想象内存里面是一个个的小盒子,每个盒子对应一个编号,这个编号就是地址,盒子里存放的就是数据。,如有 int a;即有一个小盒子里面存放的数据起名叫a,&a就是取a的地址,即该盒子的编号。int *p :一级指针,表示p所指向的地址里面存放的是一个int类型的值。原创 2022-11-15 17:15:44 · 948 阅读 · 0 评论 -
C++实现爱心
最近看很多人都在玩这个爱心。下面程序可以直接跑,快去和你学计算机的女友表白吧。原创 2022-11-15 16:46:20 · 1165 阅读 · 0 评论 -
如何高效学习嵌入式(从入坑到起不来)
学完了这个开始去力扣上刷题,刷简单题就行,但是我个人推荐去先过一遍代码随想录:附链接。打不开就自己百度名字。浙江大学翁凯老师的《c语言程序设计》懂得都懂没有之前,附上b站链接,要是链接失效就自行百度。韩顺平老师的一周学会,正常人学一下打几把王者,应该一周搞不定,那就两周,边学习还能边上王者。c++看黑马程序员的那个大哥,开局片头的o基础学it,就来黑马程序员。青岛大学王卓老师的数据结构与算法课包教包会,通俗易懂,拳拳到肉,链接如下。还是传智教育,还是那个熟悉的声音,虽然视频有点老,但是够用了。原创 2022-11-15 15:50:05 · 1092 阅读 · 0 评论 -
C++实现KMP算法(代码随想录版)
说到KMP,先说一下KMP这个名字是怎么来的,为什么叫做KMP呢。因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP。写过KMP的同学,一定都写过next数组,那么这个next数组究竟是个啥呢?next数组就是一个前缀表(prefix table)。前缀表有什么作用呢?前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。原创 2022-11-12 15:44:48 · 1866 阅读 · 0 评论 -
关于C++中的emplace_back的解释
在平时我们习惯性的尾插用push_back()去完成,但是如果是尾插临时对象的话,push_back()需要先构造临时对象,再将这个对象拷贝到容器的末尾,而emplace_back()则直接在容器的末尾构造对象,这样就省去了拷贝的过程。今天做力扣题目,突然发现emplace_back,我不认识(大多数我都不认识),于是我搜了一下资料。原创 2022-11-10 12:31:06 · 1355 阅读 · 0 评论 -
搞不懂c++ 的函数声明与定义
函数的定义一般主要有5个步骤:1、返回值类型 :一个函数可以返回一个值。在函数定义中2、函数名:给函数起个名称3、参数列表:使用该函数时,传入的数据4、函数体语句:花括号内的代码,函数内需要执行的语句5、return表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据返回值类型 函数名 (参数列表){函数体语句return表达式}//函数定义{}函数的声明可以多次,但是函数的定义只能有一次(名字可以到处写,但是你只有一个独一无二)//声明可以多次。原创 2022-11-09 15:48:19 · 1664 阅读 · 0 评论 -
关于C++ 三目运算符的具体学习
关于C++ 三目运算符本人经常忘记,所以就........只记得三只小猪称体重的三个猪。原创 2022-11-09 12:59:38 · 191 阅读 · 0 评论 -
C++解决约瑟夫环
约瑟夫环问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个整数作为报数上限值m。从第一个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列,试设计一个程序,求出出列顺序。 例如m的初值为20;n=7,7个人的密码依次为3,1,7,2,4,8,4,出列的顺序为6,1,4,7,2,3,5。作为存储结构模拟此过程,按照出列顺序打印出各人的编号。原创 2022-11-04 16:44:18 · 164 阅读 · 0 评论 -
c++ 利用容器vector定义二维向量
/创建一个10*5的int型二维向量。原创 2022-11-04 15:27:00 · 371 阅读 · 0 评论 -
通过c++ 实现dfs算法
深度优先搜索算法(以下简称DFS)是一种用于遍历(或搜索)树(或图)的算法。我们构造这样一个图(如下图),并通过C++实现DFS 算法过程1.从根节点开始2.放入一个节点(起始时放入的为根节点)3.如果这个节点是第一次出现,则放入堆栈中4.判断该节点的子节点是否搜索完成, a.如果是则将该节点出栈,判断该栈是否为空 a.1 若为空则结束 a.2 若不为空则取栈顶元素,并回到第2步 b.如果没有完成搜索,取未被搜索的根节点,并回到第2步转载 2022-10-26 10:46:05 · 1921 阅读 · 1 评论 -
C++的count函数
algorithm头文件定义了一个count的函数,其功能类似于find。这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。编写程序读取一系列int型数据,并将它们存储到vector对象中,然后统计某个指定的值出现了多少次。谓词(predicate):是做某些检测的函数,返回用于条件判断的类型,指出条件是否成立。count_if :返回区间中满足指定条件的元素数目。count_if : 在序列中统计与某谓词匹配的次数。count : 在序列中统计某个值出现的次数。转载 2022-10-25 08:33:52 · 4393 阅读 · 0 评论 -
C++中的unordered_map用法详解
map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素,因此,对于map进行的查找,删除,添加等一系列的操作都相当于是对红黑树进行这样的操作,故红黑树的效率决定了map的效率。unordered_map存储元素时是没有顺序的,只是根据key的哈希值,将元素存在指定位置,所以根据key查找单个value时非常高效,平均可以在常数时间内完成。转载 2022-10-25 08:08:58 · 7007 阅读 · 0 评论 -
C++中explicit 的作用
用来声明类构造函数是显示调用的,而非隐式调用,可以阻止调用构造函数时进行隐式。只可用于修饰单参构造函数,因为无参构造函数和多参构造函数本身就是显示调用的,关键字也没有什么意义。原创 2022-10-21 22:47:56 · 155 阅读 · 0 评论 -
C++中%和MOD的区别
C++中%和MOD的区别原创 2022-10-15 15:59:52 · 4113 阅读 · 1 评论 -
C++ 中stack用法
stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。(把冰箱塞满,然后把冰箱拿空)栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。栈中进入数据称为 —栈中弹出数据称为 —原创 2022-10-15 14:08:33 · 587 阅读 · 0 评论