- 博客(21)
- 收藏
- 关注
原创 C++语法知识点合集:11.模板
优点模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性缺点模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。
2024-09-08 21:57:04
934
原创 C++语法知识点合集:10.stack和queue
C++ 中的 stack 是一种数据结构,位于标准模板库(STL)中。它遵循后进先出(LIFO, Last In First Out)的原则,也就是说,最后插入的元素最先被移除。LIFO 结构:最后插入的元素最先被取出。限制访问方式:只能访问栈顶元素,无法直接访问其他元素。队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。
2024-09-06 12:00:00
1018
原创 C++语法知识点合集:9.list
在 C++ 中,list 是一种标准库容器(container),定义在 < list > 头文件中,属于标准模板库(STL)。list 是一个双向链表(doubly linked list),与数组(如 vector)相比,list 的存储方式和操作方式有一些不同。双向链表结构:list 使用双向链表实现,这意味着每个元素都存储一个指向前一个和后一个元素的指针。与单向链表不同,双向链表可以从任意节点向前或向后遍历。
2024-09-05 08:00:00
1929
原创 C++语法知识点合集:8.vector
迭代器失效:在 std::vector 中,当你调用 erase 删除元素时,所有指向被删除元素以及其后元素的迭代器都会失效。之后,v 中的元素全部变为100个值为8的元素,并且这些元素会被存储在一个新的内存区域。论上讲迭代器不应该会失效,但是:如果pos刚好是最后一个元素,删完之后pos刚好是end的位置,而end位置是没有元素的,那么pos就失效了。在 C++ 中,erase删除pos位置元素后,pos位置之后的元素会往前搬移,没有导致底层空间的改变,理。因此迭代器失效,实际就是迭代器。
2024-09-04 17:01:24
965
原创 C++语法知识点合集:7.string类
时,会调用operator=(String s),而参数s是对象b的一个副本。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经被释放,以为还有效,所以当继续对资源进项操作时,就会发生发生了访问违规。由于s是传值过来的副本对象,交换之后,当前对象_str指向了副本对象的内存,而副本对象s则指向了当前对象原来所指向的内存。交换操作完成后,副本对象s会在函数结束时自动销毁,其析构函数会释放它持有的内存,即之前当前对象持有的内存。
2024-09-04 00:22:25
1653
原创 C++语法知识点合集:5.内存管理
在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会。int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间// 还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;
2024-09-01 16:38:01
1011
原创 C++语法知识点合集:4.类和对象(3)
类是对某一类实体(对象)来进行描述的,描述该对象具有那些属性,那些方法,描述完成后就形成了一种新的自定义类型,才用该自定义类型就可以实例化具体的对象。
2024-08-30 14:31:32
1687
原创 C++语法知识点合集:3.类和对象(2)
如果这个成员变量,没有默认构造函数,那么就会报错,我们要初始化这个成员变量,需要用初始化列表才能解决。若类中没有显式定义构造函数,C++编译器会自动生成一个无参的默认构造函数,(不传实参就可以调用的构造就叫默认构造),一旦显式定义编译器将不再生成。构造函数名字与类名相同,创建类 类型对象时由编译器自动调用,保证了每个数据成员都有一个合适的初始值,并且在对象整个生命周期内只调用一次。在编译器生成的默认拷贝构造函数中,内置类型是按照字节方式直接拷贝的,而自定义类型是调用其拷贝构造函数完成。
2024-08-30 01:44:22
912
原创 二叉树的顺序结构及实现
记录一下学习收获 说明和要注意的点都写在代码片注释里了 对二叉树顺序常见接口进行了整理并且简单应用,重点是要理清调整的过程以及起始终止的索引
2024-08-23 01:26:13
208
原创 树和堆的基础知识
2.完全二叉树:树高h,前(h-1)层都是满的,最后一层从左到右依次缺失;一棵二叉树是节点的一个有限集合,该集合或者为空,或者由一个根节点加上左子树和右子树的二叉树组成。7.子树是不相交的,除了根节点外,每个节点有且仅有一个父节点,一棵N个节点的树有N-1条边。4.双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点。6.树是递归定义的,任何一棵树是由根+N棵子树(N>=0)组成的。1.树是由根和子树组成的,是由分支节点和叶子节点组成的。3.叶节点或终端节点:度为0的节点。
2024-08-22 22:56:31
317
原创 qt报错处理
今天发现qt的ui里面有个类名拼写错了想修改 改了ui文件 cpp文件 .h文件还是报错invalid use of incomplete type 改了一天 最后发现qt creator无法自动修改ui_.h文件和.pro文件 用记事本打开项目文件夹的文件手动修改就可以了。还发现一个快速修改的方法:用vscode打开项目文件 用搜索功能搜你想改的名字 无脑都改掉就可以了。
2024-06-26 10:30:34
383
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅