▼ C/C++ 参悟笔记
文章平均质量分 92
本人对 C/C++ 语言的理解笔记,很多参考了 cppreference的很多资料,建议多读读别人的写法
太阳风暴
技术圈里摸爬滚打的编程小白,记录学习过程中的分享、研究和总结,钟爱C、C++、C#后端语言,钟爱微信小程序快速开发,常乐村男子职业技术老油条,本科修行已完成(√),修炼进阶研究生中(......)愿望:全栈大佬 ( 全栈进度 68%)
GIT地址:https://gitee.com/sunstom、
https://github.com/add-uos、
https://github.com/SunStorm2018
展开
-
C++笔试题汇总
这里记录一下收集的常见的面试题,一些概念题,方便查看,后面会更新虚函数:在基类中声明为 virtual 的成员函数,允许派生类重写(override)该函数。虚函数实现运行时多态。作用:通过基类指针或引用调用虚函数时,实际调用的是派生类中的重写函数。纯虚函数:在基类中声明为 virtual 并且等于 0 的虚函数,例如 virtual void func() = 0;。作用:定义接口,要求所有派生类必须实现纯虚函数。使得基类成为抽象类,不能实例化。指针数组是一个数组,其中的每个元素都是指针。原创 2024-08-16 09:29:33 · 868 阅读 · 0 评论 -
C++参悟-单例模式
单例模式(Single Pattern)是一种常用的软件设计模式,它属于创建型模式。单例模式的定义是确保一个类仅有一个实例,并提供一个全局访问点来获取这个唯一的实例。该模式的核心在于控制实例的数目,使得在整个系统中,该类只被实例化一次。原创 2024-08-15 10:12:26 · 737 阅读 · 0 评论 -
C语言参悟-文本替换宏
这里记录一下,C,C++中预处理器中的文本宏替换和仿函数文本宏替换。宏替换用的非常多,有非常多的优点。(1) 方便程序的修改因为宏的本质就是替换,我们只需要改一处,其他的宏修改也会被同时修改好,这就便于维护管理。(2) 提高程序的运行效率使用带参数的宏定义可完成函数调用的功能,又能减少系统开销,提高运行效率有点内联函数的味道,但是如果是复杂的宏。还是用函数好点儿。这里记录一下常用的宏,宏名含义。原创 2024-08-13 14:56:14 · 1026 阅读 · 0 评论 -
C++参悟:stl中的比较最大最小操作
记录这里C11中常用的最小值和最大值的比较函数,最好的参考资料其实就是最重要的查看文档其实就看他的如何实现,这个就是使用的最常用的功能。因为STL用的很多基本上全是函数模板库,都是支持自定义函数函数器作为一个对比选项。不带 _element 的函数一般用在两个值之间比较,如果很多值,还是用带_element ,这个是去遍历容器比较就像min、max最后比较两个值,而且返回的是值,min_element、max_element比较容器,返回的是迭代器。原创 2024-08-03 16:27:30 · 898 阅读 · 0 评论 -
C++参悟:accumulate 累加器
求和本质上最需要三个参数,求和的范围,求和的初值first, last - 要求和的元素范围init - 和的初值op - 被使用的二元函数对象。该函数等价于:形参中并不需要有 const &。类型 Type1 必须使得 T 类型的对象能隐式转换到 Type1。类型 Type2 必须使得 InputIt 类型的对象能在解引用后隐式转换到 Type2。类型 Ret 必须使得 T 类型对象能被赋 Ret 类型值。这个Ret类型就是接受最后值的类型。原创 2024-07-29 15:36:13 · 424 阅读 · 0 评论 -
C++参悟:内存管理 shared_ptr
std::shared_ptr 是通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可占有同一对象。最后剩下的占有对象的 shared_ptr 被销毁;最后剩下的占有对象的 shared_ptr 被通过 operator= 或 reset() 赋值为另一指针。用 delete 表达式或在构造期间提供给 shared_ptr 的定制删除器销毁对象。shared_ptr 能在存储指向一个对象的指针时共享另一对象的所有权。此特性能用于在占有其所属对象时,指向成员对象。原创 2024-02-17 14:13:26 · 904 阅读 · 0 评论 -
C++参悟:内存管理-unique_ptr
std::unique_ptr 是通过指针占有并管理另一对象,并在 unique_ptr 离开作用域时释放该对象的智能指针。相当于一个对象的指针只会被一堆 unique_ptr 中某一个被占用,而且这个对象的指针不能被其他unique_ptr 占用。这个同时还有作用域的限制。销毁了用于管理的 unique_ptr 对象通过 operator= 或 reset() 赋值另一指针给管理的 unique_ptr 对象通过调用 get_deleter()(ptr) ,用潜在为用户提供的删除器释放对象。原创 2024-02-06 21:17:48 · 1126 阅读 · 0 评论 -
C++参悟:扩展资源
在 cppreference 中我发现了很多比较有趣的扩展资源。我是从其官网下载的离线 chm 版本以便查看。原创 2024-02-04 18:16:55 · 969 阅读 · 0 评论 -
C++参悟:标准字符串string
C++为我们提供了非常多的字符串,标准字符串 string 就是用的 char 作为 basic_string的 模板参数形成的一个字符串。模板类 std::basic_string 通用化了,字符序列如何操作、存储、创建及析构全部的类方法与相关函数。标准提供 std::basic_string 对常用类型的数种特化:在 头文件中 有如下的定义 ,string 其实就是用的basic_string的模板。下面的基本上所有讨论都是基于basic_string.这里讨论的 C11标准。原创 2024-01-28 11:49:58 · 815 阅读 · 0 评论 -
C++参悟:数值运算相关
C++为我们提供了很多已经定义好的一些数学函数,这些函数的使用一定要注意函数的定义域,因为计算机表示的数据有限,有些非法的运算的结果也是在数值运算库中定义好了的。原创 2024-01-23 11:08:02 · 990 阅读 · 0 评论 -
C++参悟:正则表达式库regex
C++标准库为我们提供了处理字符串的正则表达式库。正则表达式是一种用于在字符串中匹配模式的微型语言。正则表达式在查询、替换字符串的时候有很多快速的使用场景,是一个经常使用的工具。正则表达式需要使用到正则表达式的语法,这个语法是独立于编程语言外的一个工具。这个可以 在线查看和测试菜鸟学习教程在线测试工具。原创 2024-01-20 21:41:40 · 1187 阅读 · 0 评论 -
C语言参悟-函数
首先,什么是函数?函数(function)是完成特定任务的独立程序代码单元。在现实生活中,为了解决某一个问题,我们需要把解决这个问题的大任务分解成单个单个的小任务。因为可能在这个任务里面有很多事重复类似的任务,对这种重复的任务我们只需要共用一个方法去解决即可。这样的方法同样适应计算机里的任务,在C语言里面就提供了这样的方式,就是用函数来代替处理重复任务的方法。函数的目的也就解决一个小任务,可以说函数算是C语言处理的最小单位了。用一个一个的函数组合起来就能解决这个大的任务。可以说函数就是积木。原创 2023-10-18 09:57:55 · 277 阅读 · 0 评论 -
C语言参悟-数据类型
编程语言为抽象这个物理世界提供了依据,其中对于描述物理世界的情况提供了一个叫做数据类型的名字,这种数据类型是我们人类能够认识的东西,就像数字,字母,字符之类的。C语言中也提供了数据类型这种说法,就像下面的图片里面猴子,我们用C语言描述图片里面的猴子,就可以用 C语言里面的字符串char * imageDescription = "两只猴子,一个大猴子,一个小猴子";下面是我对 C语言里面的数据类型的理解使用参悟。原创 2023-08-05 21:58:17 · 461 阅读 · 1 评论 -
C语言参悟-运算符表达式和语句
在我刚开始学C语言的时候,语句和运算符号这些对我来说还是很陌生的。现在来看我对于这个的理解其实就是一种处理数据语法的规范,因为计算机处理数据和我们人来处理数据是有不一样的。计算机面对我们现实生活,计算机其实是做了抽象,编程语言就是对处理真实世界的方法提供的一种处理工具,里面的运算符和表达式语句这些都是用编程语言来描述真实世界罢了。运算符、表达式、语句也是处理数据的语法规范。也就是说编程语言能够处理这种符合规范的语句,在这个语法之外的情况是不能被处理的。原创 2023-06-02 21:15:48 · 634 阅读 · 0 评论 -
C语言参悟-分支和跳转
下面只是我的对于C语言的认识拙见,可以多多提出批评建议😄计算机的诞生很大程度上就是为了来进行重复性的某些工作,就像工厂里面的流水线一样,都是在重复的循环做某一件事情,只要涉及到工作,就需要流程来控制,流程里面一个很重要的概念就是循环,循环的诞生就是解决实际工作中重复性的做一些工作。但是如果只是靠循环重复性做某些事情是无法满足我们的需要的。就像我们要设计了一个分拣出西红柿的流程,我们就需要用循环的把西红柿放到箱子里面。但是实际情况西红柿有大有小,有青有红的,有坏果,有好果等等情况。原创 2023-05-31 11:31:57 · 859 阅读 · 0 评论 -
C语言参悟-循环控制
计算机的诞生很大程度上就是为了来进行重复性的某些工作,就像工厂里面的流水线一样,都是在重复的循环做某一件事情,只要涉及到工作,就需要流程来控制,流程里面一个很重要的概念就是循环,循环的诞生就是解决实际工作中重复性的做一些工作。第二次新的循环的时候又会重新申请新变量的。C语言里面对于流程控制里面的循环重复提供了好几种方案,每一种方案都是具有特定的工作场景的。循环的条件其实就是用的 1(非0) 和 0 表示的循环的起止。循环条件的例子其实就是 能够产生 0 或者非 0 的式子就可以的。原创 2023-05-15 15:00:12 · 871 阅读 · 2 评论