
C++
文章平均质量分 90
C++知识汇总
搞点夜点心
这个作者很懒,什么都没留下…
展开
-
stack和queue
queue是一种容器适配器,其中一端用于插入数据,另一端用于删除数据(先进先出)优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。优先队列类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)。优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的顶部。底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。原创 2025-05-06 15:33:35 · 957 阅读 · 0 评论 -
list的使用及模拟实现
在本篇博客中介绍的list是。原创 2025-05-06 15:32:35 · 809 阅读 · 0 评论 -
vector的模拟实现以及oj题(2)
上篇博客介绍了大部分vector的接口,其中包括begin()、end()、const begin()、 const end()、size、capacity、reserve、empty、push_back、pop_back、insert、operator[],这篇博客将介绍剩下的部分接口,以及一些oj题解法和思路。原创 2024-09-28 13:50:31 · 1097 阅读 · 1 评论 -
vector的模拟实现以及oj题
上篇博客介绍了voctor的大部分的重要接口,本篇博客将模拟实现部分接口的效果。原创 2024-09-24 16:57:58 · 340 阅读 · 12 评论 -
string和oj题以及vector的接口介绍
vector的构造函数⁂ 代表重点vector的构造函数说明vector()⁂无参构造构造并初始化n个val拷贝构造使用迭代器进行构造vector的输出方式⁂ 代表重点vector的输出方式说明范围for从头到尾遍历返回vector中n处的元素的引用获取第一个数据位置的iterator 获取最后一个数据的下一个位置的iterator获取第一个数据位置的reverse_iterator, 获取最后一个数据的reverse_iterator。原创 2024-09-24 16:26:35 · 1077 阅读 · 18 评论 -
string类的模拟实现以及oj题
上篇博客实现了string类的begin()、end()、构造函数、析构函数、c_str、size()、clear()、capacity()、[ ]、reserve()、push_back、append()、insert()、+=。这篇博客实现剩下的一些重要功能。原创 2024-09-20 21:41:08 · 1177 阅读 · 20 评论 -
string类的模拟实现
实现string的模拟实现分为三个文件,分别为:string.h、sting.cpp、test.cpp。原创 2024-09-16 10:07:02 · 517 阅读 · 8 评论 -
string(2)
字符串最后一个单词的长度思路:不能使用cin作为输入,因为cin在遇到空格时就会结束,可以使用getline代替return 0;原创 2024-09-13 11:30:41 · 620 阅读 · 0 评论 -
string(1)
C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。原创 2024-09-08 13:32:07 · 1055 阅读 · 18 评论 -
内存管理、模块初阶、STL简介
class 类模板名// 类内成员定义// 类模版public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误// 扩容++_size;是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。原创 2024-09-04 10:44:15 · 935 阅读 · 19 评论 -
类和对象以及内存管理
int main()// new/delete 和 malloc/free最大区别是 new/delete对于// 自定义类型除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的free(p3);delete p4;free(p5);return 0;new与mallocdelete与free。原创 2024-08-31 11:44:01 · 956 阅读 · 19 评论 -
类和对象(4)
因为初始化列表的顺序是按声明顺序进行的,因此我们可以知道_a2先进行声明,因此先计算_a2(_a1),由于_a1还未进行声明,因此_a2为随机值,又因为传入了1,不用使用缺省值,因此_a1为1。因此,答案为 1 随机值,选D。由于c为全局变量,因此c先调用构造函数,再进入main函数中,紧接着a,b再调用构造函数,最后d再调用构造函数,因此构造函数的调用顺序为 c a b d,因此选E。析构函数的调用顺序为局部到整体,并且先进行构造函数的后进行析构函数,因此析构函数的顺序为 b a d c,选B。原创 2024-08-28 13:28:33 · 2165 阅读 · 15 评论 -
类和对象(2)
⼀个类,我们不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个。其次就是C++11以后还会增加两个默认成员函数,和。原创 2024-08-11 18:05:39 · 1113 阅读 · 3 评论 -
类和对象(1)
为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前面或者后面加或者开头,注意中这个并不是强制的,只是⼀些惯例,具体看公司的要求。中也可以定义类,兼容C中的用法,同时升级成了类,明显的变化是中可以定义函数,⼀般情况下我们还是推荐用定义类。定义在类⾯的成员函数默认为。访问限定符⼀种实现封装的方式,用类将对象的属性与方法结合在⼀块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。修饰的成员在类外可以直接被访问;和修饰的成员在类外不能直接被访问,和是⼀样的原创 2024-08-07 20:19:24 · 971 阅读 · 12 评论 -
C++入门基础
定义命名空间,需要使用到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域这个域跟全局域各自独立,不同的域可以定义同名变量,所以下⾯的rand不在冲突了。C++中域有函数局部域全局域命名空间域类域;域影响的是编译时语法查找⼀个变量/函数/类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。原创 2024-08-02 19:09:50 · 2025 阅读 · 7 评论