- 博客(166)
- 收藏
- 关注

原创 全网首发!!C++20新特性全在这一张图里了
前面我写了C++11、C++14、C++17新特性系列文章,大家可以移步到这里↓↓↓《C++11新特性,所有知识点都在这了!》《C++14新特性的所有知识点全在这儿啦!》《他来了,他来了,C++17新特性精华都在这了》没错,就差C++20新特性了,今天终于出炉啦。目录语言特性比较运算<=>对于 (a <=> b),如果a > b ,则运算结果>0,如果a < b,则运算结果<0,如果a==b,则运算结果等于0,注意.
2021-04-11 19:25:44
1669

原创 c++11新特性,所有知识点都在这了!
这篇文章基本上涵盖了c++11的所有新特性,并有详细代码介绍其用法,对关键知识点做了深入分析,对重要的知识点我单独写了相关文章并附上了相关链接,我还准备了完整版c++新特性脑图,有需要可以去我的gz号回复 “新特性” 下载,见文章最后。auto & decltype关于C++11新特性,最先提到的肯定是类型推导,C++11引入了auto和decltype关键字,使用他们可以在编译期就推导出变量或者表达式的类型,方便开发者编码也简化了代码。 auto:让编译器在编译器就推导出变量的类型,
2020-05-11 20:27:49
1613
原创 C++基础系列【35】巧用assert
assert字面意思是断言,用于判断是否满足某个条件,如果不满足某个条件,则程序会直接崩溃,控制台上会显示崩溃所在的文件名和行号。示例中我用assert来表示函数func的输入一定要>0。我如果输入了-1,程序运行时会在assert处crashAborted我们一定在assert处只做判断,不要添加任何功能逻辑,因为assert只在debug模式下有作用release模式下,assert这行代码会自动跳过去,会自动被忽略。这种改变了i状态的assert。
2025-04-03 16:19:53
351
原创 C语言基础系列【33】命令行参数
命令行参数将从命令行中获取输入的信息,方便用户在程序运行时动态的传递信息给程序,提高灵活性。在C语言中,命令行参数通过main函数的参数传递给程序。
2025-04-01 15:29:49
874
原创 C++基础系列【33】使用nullptr而非NULL
因为需要为空指针常量起一个名字,更清晰的表明它表达的是什么含义,就像3.1415926为什么要用π表示一样,尽管宏一直是被各方吐槽的,但为了有名字在当时C++也只能这样,这也是。专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,已帮助多名学员获得大厂offer!之父一直推崇尽量避免使用它,在实际编程中,可以减少宏的使用,直接使用0。,没有任何其它语义,空指针的活就安排给其它员工,这个员工就是。其实就是一个宏,对于宏,
2025-04-01 15:25:05
916
原创 C++基础系列【32】左值、右值详解
万能引用的形式是T&&当T是一个模板参数,且需要进行类型推导时(例如函数模板参数)。当使用auto&&声明变量时。此时T&&或auto&&可以绑定到左值、右值,因此被称为万能引用。
2025-03-31 14:32:29
998
原创 C语言基础系列【32】指针进阶5:指针与常量
常量指针(Pointer to Constant):可以改变指向,但不能通过该指针修改值。指针常量(Constant Pointer):不能改变指向,但可以通过该指针修改值。常量指针常量(Constant Pointer to Constant):既不能改变指向,也不能通过该指针修改值。英文比中文更容易理解。码字不易,欢迎大家关注评论C++训练营。
2025-03-31 10:58:11
309
原创 C++基础系列【31】类型转换
对象的指针,可能将基类对象指针转成了派生类对象的指针,这种转换很容易出bug,需要严格审查代码才能消除这种隐患,可C这种转换方式不利于我们审查代码,且程序运行时也可能会出bug。专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,已帮助多名学员获得大厂offer!完全兼容C语言,C语言的转换方式很简单,可以在任意类型之间转换,但这也恰恰是缺点,因为极其不安全,可能不经意间将指向。),万不得已不要使用,因为不安全,有bug风险。
2025-03-28 15:08:39
275
原创 C++基础系列【30】CV关键字
这个函数的返回值会尽可能在编译期间被计算出来当作一个常量,但是如果编译期间此函数不能被计算出来,那它就会当作一个普通函数被处理。字面意思为只读,可用于定义变量,表示变量是只读的,不可以更改,如果更改,编译期间就会报错。的值啊,嗯,确实可以改动而且不报错,但编译器不保证你会得到想要的结果,它会是个。的语义,只保证了运行时不可以被修改,但它修饰的仍然有可能是个动态变量,而。修饰的成员函数中,如果我改动了里面的成员变量的值,编译器会报错。,这时如果我们自定义的函数有改动成员的需求,就需要。
2025-03-27 15:32:48
866
原创 C++基础系列【28】string的split
专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,已帮助多名学员获得大厂offer!方法,至于为什么没有提供,我查了很多资料,网上也有很多说法,但是我依旧没找到比较满意的答案。却不知道怎么实现,可以考虑从以上两种方式中挑一个,我更多的是用第一种。官方没有,但是还经常有这个需求(项目中,平时刷题,都会用到。肯定不是因为难以实现就是了,大概率是因为加了。还有种常见的方式是使用C语言的。),那就只能自己实现一个。这里贴一个我经常在用的一个。
2025-03-25 21:04:13
302
原创 C语言基础系列【28】指针进阶1:深入理解指针
指针是C语言中的核心概念,它提供了对内存的直接访问和控制能力。通过深入理解指针,我们肯定可以编写更高效、更灵活的程序,然后少踩坑。
2025-03-25 20:55:57
644
原创 C++基础系列【27】Raw String Literal
专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,已帮助多名学员获得大厂offer!来转义才可以,如果遇到复杂字符串,加那么多转义,又难看,又容易出错(我们想要的是。的作用,你传进去的是什么字符串,它就会输出什么字符串。,它中文名我也不知道怎么翻译更好,但在描述。,但如果没有转义,它却自动变成了换行)。通过它的输出你大体应该也能猜到。而以前使用普通字符串,遇到。时,它非常方便且安全。
2025-03-22 22:12:00
309
原创 C++基础系列【26】排序和查找算法
排序与查找算法的重要性不用过多介绍了吧,面试也经常考察。本文将详细介绍常见的排序算法(冒泡、选择、插入、快速、归并、堆排序)、查找算法(顺序查找、二分查找、哈希查找),以及算法的时间复杂度与空间复杂度分析。
2025-03-19 14:26:31
1120
原创 C语言基础系列【26】回调函数
在编码世界中,回调函数是一种强大的编程技术与思想,通过回调函数,程序在运行时可以动态地决定调用哪个函数。这种机制在C语言中通过函数指针实现,上层代码能够将一段代码(函数)传递给底层模块,底层模块在适当的时候调用这段代码。
2025-03-19 14:20:30
866
原创 C语言基础系列【24】类型转换
在C语言编程中,数据类型转换是一个核心且重要的概念。无论是显式地通过强制类型转换运算符,还是隐式地由编译器自动处理,类型转换都发挥着重要作用。本文会详细介绍相关知识点。
2025-03-18 10:46:57
1004
原创 C++基础系列【25 】函数对象与谓词
函数对象在C++中比较常用,它允许将函数作为对象来处理,提高代码的灵活性和可复用性。谓词是一种特殊的函数对象,用于返回布尔值。本文介绍相关概念。
2025-03-18 10:31:56
402
原创 C++基础系列【24】STL迭代器和算法
迭代器是STL的核心组件之一,它提供了一种统一的方式来遍历容器中的元素。而STL算法库则提供了大量高效的通用算法,方便程序员操作容器中的数据。
2025-03-17 15:58:54
839
原创 C语言基础系列【23】输入输出
输入与输出(I/O)操作是程序与外界交互的基本方式。C语言提供了一系列函数来处理不同类型的输入与输出需求,使得程序能够读取用户输入的数据,以及将处理结果输出到屏幕或文件中。
2025-03-17 15:45:22
1210
原创 C++基础系列【23】常用STL介绍
适用于需要将多个不同类型的值组合在一起并返回的场景,如函数返回多个不同类型的值,当然,你也可以用。不会按键的顺序进行排序,而是使用哈希表来实现,因此具有更快的查找、插入和删除操作。是一个关联容器,用于存储键值对,其中每个键都是唯一的,并且会自动按键的升序排序。是C++标准库中的一个固定大小的异类容器,可以将多个不同类型的值组合在一起。是一种基于红黑树实现的有序集合,其中元素是唯一的,且自动按升序排序。是一种基于哈希表实现的无序集合,其中元素是唯一的,但不保证元素顺序。的数组场景,如存储不确定数量的数据。
2025-03-13 13:46:28
893
原创 C语言基础系列【22】可变参数
可以声明一个可变参数函数需要使用省略号(...)来表示函数可以接受可变数量的参数。这里,sum函数接受一个整数num作为第一个参数,表示后续可变参数的数量。省略号表示该函数可以接受任意数量的额外参数。仅仅声明一个可变参数函数是不够的,我们还需要在函数定义中处理这些可变参数。C语言提供了stdarg.h头文件,其中包含了处理可变参数所需的宏和类型。函数定义中,需要创建一个va_list类型的变量,并使用va_start宏来初始化这个变量。va_list是一个用于遍历可变参数列表的类型,而。
2025-03-13 13:37:45
624
原创 C++基础系列【22】标准库初探
标准库是C++的重要组成部分,它提供了非常丰富的能力,包括输入输出操作、字符串处理、容器、算法、数值运算等多个方面。下面介绍常见的部分。标准库的组件都放在命名空间std中,避免命名冲突。建议在代码中使用前缀,而不是,尤其是在大型项目中。常用的标准库函数比如数学函数,<cmath>头文件提供了许多数学函数。标准输入输出流库(iostream)这个简单看一下,知道有这个东西即可,cout的格式化输入输出太麻烦了,实际工作中很少这样使用。字符串库(string)码字不易,欢迎大家。
2025-03-12 14:05:21
311
原创 2025音视频就业前景分析
现在市场上音视频工资并不低,但是还是有大量缺口。因为音视频开发涉及的知识体系比较复杂,学习成本高,互联网上关于音视频开发的资料较少,且很多资料存在错误信息,这使得初学者在学习过程中容易遇到困难,导致很多人难以坚持学习。尤其对于缺乏项目经验的校招生来说,短期内靠自己独立学习完成一个音视频项目难度是相当之大。
2025-03-12 13:49:00
902
原创 C++基础系列【21】模板初探
学C++的朋友应该都知道多态,多态分为运行时多态和编译时多态,其中模板可以粗浅理解为是编译时多态的其中一种方式。模板是一种通用的代码框架,允许在编写代码时使用占位符(通常是类型或值),在实际使用时再指定具体的类型或值。使用模板进行泛型编程,可以认为是用一种无关于特定类型的方式来编写代码。模板大体分为函数模板与类模板,其中还有些主要的特性,比如全特化、偏特化、SFINAE等。模板的声明以关键字template开头,后跟模板参数列表。模板参数可以是类型参数(typename或class,现在一般都是使用。
2025-03-09 19:23:29
657
原创 C语言基础系列【21】memcpy、memset
memcpy:用于内存拷贝,不处理重叠区域,适用于大块数据拷贝。memset:用于内存初始化,按字节设置值,适用于初始化内存为特定值。memmove:用于内存拷贝,能处理重叠区域,是memcpy的安全版本。在使用这些函数时,务必注意目标内存区域的大小和源内存区域的数据,避免内存越界和未定义行为。
2025-03-09 19:15:06
980
原创 C语言基础系列【20】内存管理
在C++编程中,内存管理是一个至关重要的概念。要深入理解内存管理,我们肯定要了解堆内存和栈内存的基本概念、区别以及它们的动态分配和释放方法。还需要深入理解相关内存分配函数malloccallocrealloc的用法。
2025-03-08 22:44:23
943
原创 C++基础系列【20】数据结构与算法基础
每个节点有零个或多个子节点。没有父节点的节点称为根节点(Root没有子节点的节点称为叶子节点(Leaf除了根节点外,每个节点有且仅有一个父节点。图是由顶点(Vertex)和边(Edge)组成的一种数据结构,用于表示多对多的关系。图可以分为有向图和无向图。
2025-03-08 22:34:04
718
原创 C语言基础系列【19】inline关键字
由于inline函数需要在每个调用点展开,因此其定义需要在编译时对每个编译单元可见。这通常意味着inline函数的定义应该放在头文件中,而不是源文件(.c)中。这样做可以确保在链接时不会出现重复定义的问题,因为每个编译单元都会包含inline函数的定义,并且编译器会处理这些重复的定义(实际上,由于inline的特性,编译器会将其视为建议而非强制要求,因此不会有链接时的符号冲突)。如果inline函数在多个编译单元中被引用,并且没有通过static。
2025-03-06 21:20:24
978
原创 C++大佬养成攻略——memcpy的实现原理
* 函数原型 */memcpy的功能是将src指向的内存区域的前n个字节复制到dest指向的内存区域。使用memcpy不处理重叠区域(这是memmove的职责)返回目标地址dest要求调用者确保:dest和src都是有效指针内存区域不重叠有足够的空间。
2025-03-06 20:51:40
733
原创 C语言基础系列【18】字符串深入理解
C语言中,字符串是通过字符数组来实现的。字符数组的最后一个元素必须是空字符\0,它标志着字符串的结束。在第二种形式中,编译器会自动在字符串末尾添加\0。如果手动初始化字符数组时忘记添加,可能会导致未定义行为,如输出乱码。
2025-03-04 16:20:36
728
原创 C++大佬养成攻略——有了万能引用,为什么还需要完美转发?
万能引用的形式是T&&当T是一个模板参数,且需要进行类型推导时(例如函数模板参数)。当使用auto&&声明变量时。此时T&&或auto&&可以绑定到左值、右值,因此被称为万能引用。
2025-03-04 16:14:16
871
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人