C++
文章平均质量分 90
学习一下C++吧孩子们
Squirrel-Htzsl
活着就战胜了99%的人
展开
-
C++_入门
定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域,这个域跟全局域各自独立,不同的域可以定义同名变量。C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响编译查找逻辑,还会影响变量的⽣命周期,命名空间域和类域不影响变量⽣命周期。原创 2024-07-13 11:15:53 · 1031 阅读 · 0 评论 -
C++_类与对象(1)
类域影响的是编译的查找规则,下面程序中Init如果不指定类域Stack,那么编译器就把Init当成全局函数,那么编译时,找不到array等成员的声明/定义在哪⾥,就会报错。指定类域Stack,就是知道Init是成员函数,当前域找不到的array等成员,就会到类域中去查找。上⾯的程序运行后,我们看到没有成员变量的B和C类对象的大小是1,为什么没有成员变量还要给1个字节呢?类定义了⼀个新的作用域,类的所有成员都在类的作用域中,在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。原创 2024-07-14 16:01:26 · 770 阅读 · 0 评论 -
C++_类与对象(2)
默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。⼀个类,我们不写的情况下编译器会默认⽣成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重要,我们稍微了解⼀下即可。其次就是C++11以后还会增加两个默认成员函数,移动构造和移动赋值。原创 2024-07-15 17:37:59 · 644 阅读 · 0 评论 -
C++_类与对象(3)
n 牛客题霸 牛客网。+n 牛客题霸 牛客网。原创 2024-07-20 09:39:26 · 825 阅读 · 0 评论 -
C++_C或C++内存管理
int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;原创 2024-07-20 10:52:33 · 905 阅读 · 0 评论 -
C++_模板(初阶)
class 类模板名// 类内成员定义// 类模版public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误,具体原因后面会讲template<class T>//上下T并非一个T,但是并无影响,因为T无非就是一个名字,一个代号。// 扩容++_size;原创 2024-07-23 17:34:27 · 333 阅读 · 0 评论 -
C++_STL简介
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。原创 2024-07-23 21:27:23 · 341 阅读 · 0 评论 -
C++_String类
在这里补充2个C++11的小语法,方便我们后面的学习。原创 2024-08-03 23:07:44 · 804 阅读 · 0 评论 -
C++_vector
(constructor)构造函数声明接口说明vector()无参构造构造并初始化n个val拷贝构造使用迭代器进行初始化构造。原创 2024-08-07 14:41:08 · 824 阅读 · 0 评论 -
C++_list
迭代器失效即迭代器所指向的节点的无效,也就是该节点被删除了。因为list的底层结构为带头结点的双向循环链表,因此在list中进行插入时是不会导致list的迭代器失效的,只有在删除时才会失效,并且失效的只是指向被删除节点的迭代器,其他迭代器不会受到影响。通过前面例子知道,反向迭代器的++就是正向迭代器的–,反向迭代器的–就是正向迭代器的++,因此反向迭代器的实现可以借助正向迭代器,即:反向迭代器内部可以包含一个正向迭代器,对正向迭代器的接口进行包装即可。原创 2024-08-10 15:57:00 · 641 阅读 · 0 评论 -
C++_Stack和Queue
queue的文档介绍priority_queue的文档介绍适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。deque(双端队列):是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与list比较,空间利用率比较高。原创 2024-08-12 23:06:02 · 698 阅读 · 0 评论 -
C++_模板(进阶)
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。原创 2024-08-13 19:15:24 · 540 阅读 · 0 评论