C++
Long-002
不断学习,一直在路上!
展开
-
简述STL
STL (standard template library)C++中提供的标准模板库 通俗说法 STL就是将常用的数据结构进行封装—>顺序表、链表、栈和队列二叉树、哈希等,然后再增加一些通用类型的算法—>find() 等 通用:算法任意数据类型都可以处理,与具体的数据结构无关,而且算法还非常灵活。 具体来说 STL包含六大组件(模板) 容器:本质就是对常见数据结构的封装 迭代器 算法:顺序表、链表、二叉树、哈希表、find() 等 适配器/配接器 空间配置器 仿函数 容器 序列式容器---原创 2020-11-01 21:10:37 · 190 阅读 · 1 评论 -
函数模板主要内容
函数模板 函数模板的概念 函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。 函数模板的格式 template <typename T1, typename T2, ....... typename Tn> 返回值类型 函数名(参数列表){} typename 也可以用class代替,两者是一样的。 template <class T> void Add(T& lest, T& right) {原创 2020-10-25 17:23:38 · 143 阅读 · 0 评论 -
内存泄漏
什么是内存泄漏 内存泄漏:指因为疏忽或错误造成程序未能释放已经不再使用的内存。 内存泄漏并不是指内存在物理上消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。 内存泄漏的危害 长期运行的程序出现内存泄漏问题,影响很大,如操作系统、后台服务器等,出现内存泄漏会导致响应越来越慢,最终卡死。 内存泄漏的分类 堆内存泄漏 堆内存指的是程序执行中根据需求分配通过malloc/ realloc/ new 等从堆中分配的一块内存,用完之后必须通过调用响应的free或delet原创 2020-10-21 22:43:32 · 82 阅读 · 0 评论 -
malloc/free与new/delete的不同之处
共同点 malloc/free和new/delete都是在堆空间上申请空间,都需要用户手动释放空间 不同点 malloc/free 是函数,new/delete是操作符 malloc申请空间不会初始化,new可以进行初始化 malloc申请空间时需要手动计算空间的大小并传递,new只需要在其后面跟上空间类型名 malloc返回值是void*类型,所以返回值必须进行强转;new不需要进行强转,后面只需要跟上类型名 malloc申请失败返回的是一个NULL,必须进行判空;new不需要,但是会返回一个异常 申请原创 2020-10-21 12:36:06 · 50 阅读 · 0 评论 -
C++中的动态内存管理(new/delete)
前言:在C语言中,我们开辟空间时,通常使用malloc、free 和 realloc 等进行空间开辟,在C++中,我们也可以使用C语言中的方法,但是有些地方就会比较麻烦,所以C++就提出了自己的内存管理方法:通过 new 和 delete 操作符来进行动态内存开辟管理。 new/delete 操作内置类型 void Test () { //动态申请一个int类型的空间 int* ptr1 = new int ; // 动态申请一个int类型的空间并初始化为1 int* ptr2原创 2020-10-16 13:13:29 · 158 阅读 · 0 评论