
C++
文章平均质量分 91
流水可听
这个作者很懒,什么都没留下…
展开
-
C++:迭代器失效问题
这里erase同理,本身删除了一个元素后,对应位置及后面元素的迭代器都会失效,虽然迭代器失效,但它们依然指向一个新的内存空间,此时我们只要返会新的内存空间,这样我们下次删除或增加时就可以以新的位置为新的迭代器进行新的操作。迭代器的主要功能包括读取和写入元素、比较两个迭代器的位置、以及在容器中移动位置。下面的代码中,通过提前保存pos的位置len,这样在reserve分配空间后,可以通过len的长度找到pos的新位置,这样尽管以前的迭代器失效了,但通过这样的方法可以使迭代器指向分配空间后的元素位置。原创 2025-04-27 15:43:51 · 393 阅读 · 0 评论 -
C++:了解string类的重要函数
对于常用的一些string的函数,掌握上面的足以应对遇到的绝大部分情况了,并且我们可以看出封装了一个这样的字符串类后,我们以后再使用字符串就可以更加简洁更加方便了。后面会写一篇文章来进行对一些重要函数的模拟实现来帮助大家更加深入的了解这些函数的底层封装。原创 2025-04-08 11:24:26 · 1115 阅读 · 0 评论 -
C++:初步认识模板的作用
模板是C++中一个非常重要的内容,也是C++的一个重要转折,它可以帮助我们简化很多在C语言中很麻烦的问题,而本文章通过讲解函数模板和类模板带大家先初步认识一下模板的作用,后续会有对模板的进阶使用进行讲解。原创 2025-03-17 18:10:32 · 921 阅读 · 0 评论 -
C++:进行动态管理的new和delete
如果申请的是内置类型的空间,new和malloc,delete和free基本类似,不同的地方是:new/delete申请和释放的是单个元素的空间,new[]和delete[]申请的是连续空间,而且new在申请空间失败时会抛异常,malloc会返回NULL。new和delete在开空间和销毁空间时实际会去通过调用operator new和operator delete这两个系统提供的全局函数来实现的开空间和销毁空间。我们明白了new和delete的大致用法,接下来我们再了解一下他们的底层是如何实现的吧。原创 2025-03-16 14:36:58 · 794 阅读 · 0 评论 -
C++:深入了解构造函数中的初始化列表
假如我们在B类中声明了一个A类的自定义成员_aobj,编译器在执行B类时肯定会先去调用A类的构造函数给它初始化,但A类中的没有默认构造函数,声明又无法传值,那么此时_aobj就无法进行初始化,所以这时就可以在B中写一个初始化列表,将_aobj进行初始化。我们上面说了构造函数体内赋值不是初始化,也就是说不算是定义,其他类型因为没有这样的特性,在函数体内赋值还算是 ‘初始化’,但这种类型的成员哪怕想要体内赋值都没有办法,而根据初始化列表的特性,我们知道初始化列表中就是初始化,就是用来定义的。原创 2025-03-10 17:17:05 · 998 阅读 · 0 评论 -
C++:深入了解C++的六个默认成员函数
我们都知道一个类中如果没有任何成员,则叫做空类。那么空类中真的什么都没有吗?答案是否定的,当一个类中一个成员没有时,编译器会自动生成六个默认成员函数,它们不仅可以提高我们运行的效率,还可以增加代码的可读性,让我们来深入了解一下这六个成员函数吧。原创 2025-03-06 17:38:13 · 805 阅读 · 0 评论 -
C++:对类和对象的初步认识
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。//成员函数return;top = 0;//...top++;free(a);top = 0;//成员变量。原创 2025-02-04 21:45:17 · 961 阅读 · 0 评论 -
C/C++中关于结构体中内存对齐的问题
vs中的默认对齐数是8,第二个成员变量是int i,它的大小是4字节,而默认值为8,所以对于i来说对齐数是4,4的整数倍位置中,地址4是满足的,所以第二个成员变量应从4开始;而对齐的内存访问仅需要一次访问。4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。原创 2025-02-03 17:02:16 · 584 阅读 · 0 评论 -
C++:入门
本文章主要讲的是在C++中用来弥补C语言中的不足之处以及对C语言的一些方面进行优化,和对后面知识的铺垫。//全局变量int main()return 0;由这串C语言代码及结果的报错可以看出,rand重复定义了。原创 2025-01-25 14:03:10 · 781 阅读 · 0 评论