![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
文章平均质量分 91
C++编程语言的相关知识
qq_36721032
这个作者很懒,什么都没留下…
展开
-
STL之set(集合)详解
STL之set(集合)详解一、基本概念二、常用函数2.1、构造/析构函数2.1.1、构造函数2.1.2、析构函数2.1.3、等号操作符2.2、迭代器一、基本概念集合是存储排序键的关联容器,其中每个键都是唯一的,可以插入或删除但不能更改。语法:template < class T, // set::key_type/value_type class Compare = less<T>, //原创 2020-08-26 19:39:42 · 1180 阅读 · 0 评论 -
STL之stack(栈)详解
STL之stack栈详解一、基本概念二、常用函数2.1、push函数2.2、pop函数2.3、top函数2.4、size函数2.5、empty函数2.6、emplace函数一、基本概念这种数据结构使用LIFO技术,其中LIFO表示后进先出。首先插入的元素将在末尾提取,以此类推。有一个名为“top”的元素,它是位于最上面位置的元素。所有插入和删除操作都是在堆栈的顶部元素本身进行的。语法:template<class T, class Container = deque<T> >原创 2020-08-26 16:08:50 · 2073 阅读 · 0 评论 -
STL之queue(队列)详解
STL之queue队列详解一、基本概念二、常用函数2.1、push函数2.2、pop函数2.3、front函数2.4、back函数2.5、size函数2.6、empty函数2.7、swap函数一、基本概念此数据结构适用于FIFO技术,其中FIFO表示先进先出。首先插入的元素将首先被提取,依此类推。有一个称为“前”的元素,它是位于最前位置或位于第一个位置的元素,也有一个名为“后”的元素,它是位于最后位置的元素。在普通队列中,元素的插入在尾部,而删除则从前面开始。二、常用函数2.1、push函数该函原创 2020-08-26 15:49:21 · 597 阅读 · 0 评论 -
STL之vector(数组)详解
STL之vector容器详解一、什么是vector?二、容器特性2.1、顺序序列2.2、动态数组2.3、能够感知内存分配器三、基本函数实现3.1、构造函数3.2、添加元素3.3、删除元素3.4、遍历函数3.5、大小函数3.6、其他函数一、什么是vector?向量(vector)是一个封装了动态大小数组的顺序容器(sequence container)。跟任意其它类型的容器一样,它能够存放任何类型的对象。可以简单地认为,vector是一个能够存放任意类型的动态数组。二、容器特性2.1、顺序序列顺序容原创 2020-08-26 14:50:34 · 1555 阅读 · 0 评论 -
C++之string类详解
C++之string类详解一、string类简介1.1、string类的几种常见构造函数1.2 、用C语言风格初始化string对象二、获取string对象的长度三、复制string对象四、string对象的拼接和附加4.1、使用+操作符拼接两个字符串4.2、使用+=操作符在字符串后添加内容4.3、使用string.append()函数4.4、使用string.push_back()函数五、string对象的插入和删除5.1、使用 string.insert() 进行插入操作5.2、使用 string.er原创 2020-08-20 13:39:24 · 571 阅读 · 0 评论 -
C++中的异常处理机制
C++中的异常处理机制一、C++异常处理基本语法二、能够捕获任何异常的 catch 语句三、异常的再拋出四、函数的异常声明列表五、C++标准异常类5.1、bad_typeid5.2、bad_cast5.3、bad_alloc5.4、 out_of_range一、C++异常处理基本语法C++ 通过 throw 语句和 try…catch 语句实现对异常的处理。throw 语句的语法如下:throw 表达式;该语句拋出一个异常。异常是一个表达式,其值的类型可以是基本类型,也可以是类。try…cat原创 2020-07-03 21:03:32 · 556 阅读 · 0 评论 -
C++中的内存管理、内存泄漏和内存回收
C++中的内存分布一、内存管理1、C++内存管理详解1.1、内存分配方式1.1.1、内存组成一、内存管理1、C++内存管理详解1.1、内存分配方式1.1.1、内存组成栈区(stack):由编译器自动分配与释放,存放为运行时函数分配的局部变量、函数参数、返回数据、返回地址等。其操作类似于数据结构中的栈。堆区(heap):一般由程序员自动分配,如果程序员没有释放,程序结束时可能有OS回收。其分配类似于链表。全局/静态区(static):存放全局变量、静态数据、常量。程序结束后由系统释放。全局区分为原创 2020-07-03 18:48:32 · 4913 阅读 · 0 评论 -
C++中的智能指针
C++中的智能指针一、C++智能指针介绍1.1、什么是智能指针1.2、为什么要采用智能指针1.3、智能指针成员二、auto_ptr详解2.1、模拟实现代码2.2、存在的问题2.2.1、赋值运算符存在问题2.2.2、拷贝构造存在问题2.2.3、编译器优化的问题2.2、上述问题解决办法三、unique_ptr详解2.1、基于安全考虑3.1 unique_ptr概念3.2 unique_ptr操作三、shared_ptr详解四、weak_ptr详解一、C++智能指针介绍1.1、什么是智能指针智能指针主要用于原创 2020-07-01 22:13:31 · 414 阅读 · 0 评论 -
C++类中的多态
C++类中的多态一、多态的概念及分类1、静态多态2、动态多态二、动态多态详解1、动态多态的实现过程2、代码案例3、动态多态的实现原理—虚函数表3.1、动态多态虚函数表的内存分布3.2、虚函数表属于类而不是对象3.2、多继承情况下的虚函数表一、多态的概念及分类多态是一种 运行绑定机制,通过这种机制,实现将函数名绑定到函数具体实现代码的目的。一个函数的名称与其入口地址是紧密相连的,入口地址是该函数在内存中的起始地址。1、静态多态静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择调用合适的函数原创 2020-06-14 21:46:34 · 815 阅读 · 0 评论 -
C++类中的默认成员函数
C++类中的默认成员函数1、默认构造函数2、默认拷贝构造函数3、默认析构函数4、默认重载赋值运算符函数5、默认重载取地址运算符函数6、默认重载取值运算符const函数7、默认移动函数(C++ 11)8、默认重载移动赋值操作符函数(C++ 11) 1 class A 2 { 3 public: 4 5 // 默认构造函数; 6 A(); 7 8 // 默认拷贝构造函数 9 A(const A&);10 11 // 默认析构函数12原创 2020-05-31 11:54:34 · 144 阅读 · 0 评论 -
C++类中的构造函数和赋值函数
构造函数主要包括:默认构造函数、带参构造函数、拷贝构造函数三种,且构造函数经常与赋值函数混淆,这里放在一起讲,便于区分。首先初始化一个简单的类作为例子讲解:class A {public: A() { v = 1; printf("默认构造\n"); } A(int t) { v = t; printf("有参构造\n"); } A(const A& a) { th原创 2020-05-30 17:20:17 · 12987 阅读 · 0 评论 -
C++中的宏定义详解
C++中的宏定义详解#define解析新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入#define解析 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序原创 2020-05-22 23:16:59 · 2176 阅读 · 0 评论