![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 77
C++语法知识以及一些标准库知识
choose_heart
这个作者很懒,什么都没留下…
展开
-
实现迭代器封装过程遇见的问题总结
经过半天的调试和分析:发现原来是因为,const T实际上对Node那里实例化了另外的节点了,也就是Node*的节点,导致类型不同,从而刀子没有合适的函数去调用,也就是没有针对。看看下面的代码,依旧会报错,和上述原因类似,不妨分析下。,不知道Tree这个iterator是究竟是什么。Node*的iterator了,这点是值得注意的。原创 2023-11-12 12:35:00 · 24 阅读 · 0 评论 -
模版template
不妨调用test2函数就去查看Data这个类,就发现已经把a这个对象里面的成员实例化成。跑上面段代码发现只第一段(被注释的那里是会编译器报错的,原因是编译器不知道你要实例化成什么样子)直接指定类型就可以了。原创 2023-10-13 00:01:19 · 35 阅读 · 0 评论 -
win11画图截取或者橡皮擦除后出现马赛克的非彻底解决(最新版画图已修复)
windows11在11月左右,再次打开画图软件,发现出现了个问题,截取或者擦除之后,原来的地方变成了马赛克,去查了百度之后,发现好像是Win11这个版本画图的特性。目前没有很好的一劳永逸的办法(重新安装Windows11自己就给你更新成最新版,有大佬可以教下如何阻止更新也可以指教下。依次点击,确保你选择的图层是新建的那一个(一般来说默认就是新建的那一个,不需要再点击了)在此做个记录,如果有更好的办法,求大佬评论区分享下。可以说很有Windows一向的作风,越更新越垃圾。这样使用就和之前一样了。原创 2023-11-08 23:34:10 · 10106 阅读 · 12 评论 -
AVLTree的插入实现
AVLTree本质是对,二叉搜索树的一种优化,二叉搜索树会因为插入数据顺序的问题,使得整棵树的效率变得底下,最后变成N的查找,丢失其优势特性。AVLTree于是引入一种平衡因子(balance factor,之后简称BF),让表示右子树减去左子树高度,只要这个BF绝对值不大于1,我们认为这棵树近似平衡,是一颗平衡二叉树。而这种平衡的搜索二叉树就能保证效率。原创 2023-11-22 15:22:08 · 27 阅读 · 0 评论 -
Hash表,位图,布隆过滤器的实现
hash表就是一种存储数据的方法,原创 2023-12-01 17:29:07 · 38 阅读 · 0 评论 -
C++11
使用初始化列表时,可添加等号(=),也可不添加。来看几个例子。原创 2023-12-09 21:08:50 · 48 阅读 · 0 评论 -
C++实现栈,队列,优先级队列
【代码】C++实现栈,队列,优先级队列。原创 2023-10-16 09:57:45 · 35 阅读 · 0 评论 -
C++的多态(polymorphism)
基本定义:在C++中,多态(polymorphism)是一种面向对象编程(OOP)的特性,允许不同的类(通常是基类和派生类)使用相同的接口进行交互,但表现出不同的行为。原创 2023-10-24 23:39:46 · 140 阅读 · 0 评论 -
map和set的使用,二叉搜索树,红黑树的实现
这是为了后序表达更简洁。原创 2023-11-13 23:31:52 · 39 阅读 · 0 评论 -
异常与智能指针(Exception & Smart_Ptr)
目前没有方便的解决办法,C++里面提供的方案就是对意识到是循环引用的情况,就使用另外一种指针。:这种指针就是用一个计数的办法,存储有多少个指向对应空间的指针,用这个来解决不能赋值的问题。我们知道,C++支持重载运算符,所以只要重载*和->就可以解决像指针的使用。运行下面的代码,打断点调试下,对除0函数里面的注释定义的取消,看看效果。有这个指针,基本解决了90%的场景,但是呢有一个特殊的场景没法解决。,这样就不会有指针悬空的情况,但是对某些情况就无法处理。而智能指针,就是基于这个特点去设计的。原创 2023-12-18 22:49:00 · 866 阅读 · 0 评论 -
C++的继承(inherit)
一样的具备构造函数的特性,会有初始化列表,也会在初始化列表最前端去调用一次父类构造函数,,假如我要实现和父类相类似,但是有要用很多父类的,那么继承就方便。C++的继承里面,有一种继承方式是虚继承,为了解决菱形继承的缘故。VS的实现中,是把属于父类的那一部分成员,给放到了整个类的最底层。如上相当于B这个类就是私有继承,那么其继承的三个成员都是是有的。父类的静态成员是private,子类依然是没有资格访问的。子类的析构函数,只需要完成对子类那一部分的处理即可,子类与父类是共用一套静态成员,继承不算很好的描述,原创 2023-10-23 17:58:05 · 112 阅读 · 0 评论 -
C++特殊类设计
【代码】C++特殊类设计。原创 2024-02-17 11:04:10 · 355 阅读 · 0 评论 -
cin.tie(NULL);ios_base::sync_with_stdio(false);的解释
先解释这个,这个意思是和C语言的标准输出输入进行绑定。C语言的程序一般来说在程序第一次输入设备时,对应IO就已经准备就绪了,但是C++似乎并非如此(对于这点确是没找到对应资料,有清楚的请告知):C++的的IO就不与C语言绑定,最明显的就是你输出换行符不会再默认直接刷新出cout的内容。逐步运行这段代码,你会发现cin都输入完了,依然不会打印出10;本文主要参考自一个英文网站,和自己的实践经验。使用下面个语句才行。原创 2023-10-12 22:57:59 · 242 阅读 · 0 评论 -
C++的namespace,defalut funtion,reference,inline
如这里,就是对std标准命名空间的展开,使得我们可以使用标准命名空间里的函数,这种展开方式称之为全展开,在整个文件里面,都不应该再出现重名,否则就会出现错误。所以不要去分开声明和定义(也就是源文件定义,头文件声明的操作,因为不生成函数地址,也不是说去调用的问题)指c++里面可以给出因参数类型不同,参数个数不同,参数顺序不同之间的同名函数构成函数重载。// //其实,引用在底层就是用指针的方式来实现的,也就能理解上述的原因了。函数在使用引用传参的时候,使用引用传递参数,就可以改变原参数,原创 2023-07-23 17:25:41 · 53 阅读 · 0 评论 -
模拟实现string,vector,list(双向链表)问题反思
简述:模拟实现中,复现了文档里面的运算符重载,完成了iterator(迭代器)的实现,完成了字符(以及字符串)查找和插入,实现基本的拷贝构造,赋值重载。对自己实现过程中遇见的问题做出几个标记。名字都保证和C++标准网站的命名一致,实现相同或者相类似的功能。:这个函数的任务是扩容,参考g++编译器下面的实现,我也用了二倍扩容的方法,这里需要注意多留下一个空间方便放’\0’;:这个基本上值得注意的不多,就是实现两个,方便外面传const型的string时,里面因权限延展的报错。原创 2023-08-18 17:26:46 · 42 阅读 · 1 评论 -
类的explicit,static,友元,匿名对象
这就涉及某种场景了,既要显式的写出类的变量,但是又想直接调用内部成员,那么这个时候友元函数就会显得很方便了。类似下面的定义方法就是匿名对象的定义,其生命周期一般只在当前一行,但是如果有const修饰会延长和const的变量一起。PS:隐式类型转换在传参有着很方便的优势,比如给某些地方初始化的时候,因此在后面c++11,引出了多参数传参。内部类概念:如果一个类定义在另一个类的内部,这个内部类就叫做内部类,具有和友元类的性质。:友元函数可访问类的私有和保护成员,但不是类的成员函数。原创 2023-08-04 22:50:22 · 65 阅读 · 1 评论 -
C++:类的成员函数
c++的类会具有构造函数。。如果你没写构造函数,编译器会生成一个。(里面实际上一般没什么内容)特点:** 无返回值,可以重载,**会在对象实例化(动态内存开辟后)由编译器调用一次。原创 2023-07-25 16:43:24 · 84 阅读 · 0 评论