C++
文章平均质量分 96
我要升天!
本科大学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++入门知识
• 定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace zx//关键字加命名空间的名字int a = 10;int val;• namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量。int a = 10;int a = 20;• C++中域有函数局部域,全局域,命名空间域,类域;原创 2024-07-10 12:25:39 · 904 阅读 · 1 评论 -
插入/选择/希尔/堆/冒泡/快速/归并/计数排序——大集合
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。原创 2024-07-19 12:22:23 · 2015 阅读 · 0 评论 -
C++---类和对象(上)
• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。这里我们就用Date类来做个样例class Datepublic://成员函数private://成员变量int _year;int _month;int _day;原创 2024-07-23 17:48:53 · 752 阅读 · 0 评论 -
C++--类和对象(中)
析构函数与构造函数功能相反,析构函数不是完成对对象本⾝的销毁,⽐如局部对象是存在栈帧的,函数结束栈帧销毁,他就释放了,不需要我们管,C++规定对象在销毁时会⾃动调⽤析构函数,完成对象中资源的清理释放⼯作。传值返回会产⽣⼀个临时对象调⽤拷⻉构造,传值引⽤返回,返回的是返回对象的别名(引⽤),没有产⽣拷⻉。原创 2024-07-25 13:36:23 · 900 阅读 · 0 评论 -
C++--类和对象(下)
• 尽量使⽤初始化列表初始化,因为那些你不在初始化列表初始化的成员也会⾛初始化列表,如果这个成员在声明位置给了缺省值,初始化列表会⽤这个缺省值初始化。• 内部类本质也是⼀种封装,当A类跟B类紧密关联,A类实现出来主要就是给B类使⽤,那么可以考虑把A类设计为B的内部类,如果放到private/protected位置,那么A类就是B类的专属内部类,其他地⽅都⽤不了。,初始化列表的使⽤⽅式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,每个"成员变量"后⾯跟⼀个放在括号中的初始值或表达式。原创 2024-07-26 10:43:04 · 1162 阅读 · 0 评论 -
C/C++内存管理
内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。原创 2024-08-03 11:27:42 · 762 阅读 · 0 评论 -
C++中的string介绍(常用函数)
在构造时,将资源的计数给成1,每增加一个对象使用该资源,就给计数增加1,当某个对象被销毁时,先给该计数减1,然后再检查是否需要释放资源,如果计数为1,说明该对象时资源的最后一个使用者,将该资源释放;C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP。当在同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会报错,因为编译器实际只对第一个类型进行推导,然后用推导出来的类型定义其他变量。原创 2024-08-17 17:12:35 · 885 阅读 · 0 评论 -
C++中的vector介绍(常用函数)
vector的文档介绍vector是序列容器,表示可以改变大小的数组。(constructor)构造函数声明接口说明vector()(重点)无参构造构造并初始化n个val(重点)拷贝构造使用迭代器进行初始化构造int main()//无参的构造//n个val的构造//拷贝构造//迭代器区间构造return 0;原创 2024-10-15 14:48:32 · 1510 阅读 · 0 评论 -
C++中的list介绍(常用函数)
list的文档及介绍。list中的接口比较多,此处类似,只需要掌握如何正确的使用,然后再去深入研究背后的原理,已达到可扩展的能力。以下为list中一些常见的重要接口。原创 2024-10-22 14:59:06 · 882 阅读 · 0 评论 -
C++中的stack和queue介绍
stack的介绍堆栈是一种容器适配器,专门设计用于在后进先出(LIFO)的上下文中操作,其中元素仅从容器的一端插入和提取。queue的介绍队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列.底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。原创 2024-10-28 20:59:13 · 976 阅读 · 0 评论 -
二叉搜索树介绍
所以综合而言⼆叉搜索树增删查改时间复杂度为: O(N)那么这样的效率显然是⽆法满⾜我们需求的,后续还会继续讲解⼆叉搜索树的变形,平衡⼆叉搜索树AVL树和红⿊树,才能适⽤于我们在内存中存储和搜索数据。原创 2024-11-17 16:01:20 · 694 阅读 · 0 评论 -
C++--多态语法介绍
多态是⼀个继承关系的下的类对象,去调⽤同⼀函数,产⽣了不同的⾏为。⽐如Student继承了Person。原创 2024-11-17 17:54:12 · 1064 阅读 · 0 评论 -
C++--map和set的使用介绍
set的声明如下,T就是set底层关键字的类型set默认要求T⽀持⼩于⽐较,如果不⽀持或者想按⾃⼰的需求⾛可以⾃⾏实现仿函数传给第⼆个模版参数大于比较set底层存储数据的内存是从空间配置器申请的,如果需要可以⾃⼰实现内存池,传给第三个参数。⼀般情况下,我们都不需要传后两个模版参数。set底层是⽤红黑树实现,增删查效率是O(logN) ,迭代器遍历是⾛的搜索树的中序,所以是有序的。map的声明如下,Key就是map底层关键字的类型,T是map底层value的类型。原创 2024-11-28 10:32:29 · 867 阅读 · 0 评论 -
C++高阶数据结构 --《 并查集 》
从上图可以看出:编号6,7,8同学属于0号小分队,该小分队中有4人(包含队长0);编号为4和9的同学属于1号小分队,该小分队有3人(包含队长1),编号为3和5的同学属于2号小分队,该小分队有3个人(包含队长1)。注意:这里的初始化状态是-1,表示一棵树,该位置是根。特点:跟堆类似,用下标表示关系, 双亲表示法(父亲)(根位置为负数,孩子位置为双亲的下标)这里表示10棵树,10个集合。原创 2024-12-19 09:35:19 · 813 阅读 · 0 评论 -
C++高阶数据结构 -- 《 图 》
有向图和无向图:在有向图中,顶点对是有序的,顶点对称为顶点x到顶点y的一条边(弧),原创 2024-12-23 19:03:21 · 1018 阅读 · 0 评论 -
C++语法介绍 -- 《 智能指针 》
本文分析了C++智能指针的使用场景与设计原理。主要内容包括: 智能指针解决传统指针在异常处理时的内存泄漏问题,通过RAII机制自动管理资源生命周期。 标准库提供的智能指针类型: auto_ptr(已废弃):采用所有权转移策略 unique_ptr:禁止拷贝,支持移动 shared_ptr:引用计数实现共享所有权 weak_ptr:解决shared_ptr循环引用问题 智能指针核心特性: 支持定制删除器 重载指针操作符(* -> []) 提供bool类型转换 特化处理数组版本 设计原理分析: uniqu原创 2025-08-25 19:19:37 · 1080 阅读 · 0 评论 -
C++11语法介绍 -- 右值引用和移动语义
C++11引入了右值引用和移动语义,通过区分左值(可寻址的持久对象)和右值(临时对象或字面量)来优化资源管理。左值引用用于为左值取别名,而右值引用则专门处理临时对象。const左值引用可以绑定右值,但右值引用需通过move强制转换来引用左值。右值引用能延长临时对象的生命周期并允许修改,而const左值引用仅延长生命周期。移动构造函数和移动赋值运算符通过“窃取”右值资源而非拷贝,显著提升了深拷贝类(如string/vector)的效率。右值引用变量在表达式中表现为左值,这一设计在资源转移场景中尤为关键。移动语原创 2025-08-27 14:41:08 · 892 阅读 · 0 评论
分享