![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 92
Ssorrymaker
这个作者很懒,什么都没留下…
展开
-
C++类型转换
因此C++提出了自己的类型转化风格,注意因为C++要兼容C语言,所以C++中还可以使用C语言的转化风格。C++通过以下方式来支持RTTItypeid运算符、dynamic_cast运算符、decltype。编译器在编译阶段自动进行,能转就转,不能转就编译失败。...原创 2022-07-31 18:33:37 · 250 阅读 · 6 评论 -
C++智能指针
if(b==0)throwinvalid_argument("除0错误");//1、如果p1这里new抛异常会如何?//2、如果p2这里new抛异常会如何?//3、如果div调用这里又会抛异常会如何?try{Func();}可以发现,当我们抛出异常后,原先申请的空间并没有释放掉,这就会造成一个严重的问题,内存泄漏。内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。...原创 2022-07-31 16:07:54 · 475 阅读 · 2 评论 -
C++异常
实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么对于外层的调用者很不友好,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以很好的进行异常的处理。//服务器开发中通常使用的异常继承体系classException{publicint_id;};public";};public";}};public";str+="";};...原创 2022-07-29 15:57:57 · 175 阅读 · 3 评论 -
C++特殊类以及单例模式
设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。...原创 2022-07-16 21:32:29 · 476 阅读 · 3 评论 -
C++无序容器(哈希)
C++无序容器,底层用哈希实现原创 2022-07-15 19:26:01 · 1518 阅读 · 5 评论 -
C++map和set
map和set以及底层实现原创 2022-06-26 16:51:41 · 614 阅读 · 1 评论 -
数据结构之二叉树
数据结构之二叉树数据结构相关文章数据结构之线性表数据结构之栈和队列文章目录数据结构之二叉树前言一、二叉树的定义1.1 二叉树的定义1.2 二叉树的特点1.3 特殊二叉树二、二叉树的性质三、二叉树的存储结构3.1 二叉树的顺序存储结构3.2 二叉树的链式存储四、遍历二叉树4.1 前序遍历4.2 中序遍历4.3 后序遍历4.4 层序遍历总结前言要了解二叉树,首先应该知道树是怎样的一种数据结构。树的结点包含一个数据元素以及若干指向其子树的分支。结点拥有的子树的个数称为结点的度。度为0的结点称为原创 2022-03-20 10:28:50 · 2428 阅读 · 18 评论 -
C++中的多态
系列文章目录C++中的继承C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queueC++双端队列C++模板进阶C++IO流C++中的继承文章目录系列文章目录一、多态是什么?二、多态的定义及实现1.多态的构成条件2.虚函数重写的两个例外3. override 和 final4.重载、重写(覆盖)与重定义(隐藏)总结一、多态是什么?多态的概念:通俗来说,就是多原创 2022-05-17 18:06:26 · 964 阅读 · 13 评论 -
C++中的继承
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queueC++双端队列C++模板进阶C++IO流文章目录系列文章目录前言一、什么是继承?二、基类和派生类的赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元和静态成员的关系六、菱形继承与菱形虚继承总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门原创 2022-05-15 16:39:58 · 672 阅读 · 6 评论 -
C++IO流
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queueC++双端队列C++模板进阶文章目录系列文章目录前言一、流(stream)是什么?二、C++的I/O流1.C++标准IO流2.C++文件IO流三、stringstream的介绍前言在C语言中,我们用到最频繁的输入输出方式就是scanf和printfscanf:从标准输入流(键盘)读数据并存放在原创 2022-05-14 13:35:51 · 299 阅读 · 5 评论 -
C++模板进阶
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queueC++双端队列文章目录系列文章目录前言一、非类型模板参数二、模板的特化1.函数模板特化2.类模板的特化三、分离编译总结前言模板是C++中泛型编程的基础。一个模板就是一个创建类或函数的蓝图。一、非类型模板参数模板参数分为类型模板参数和非类型模板参数。类型模板参数:出现在模板参数列表中,跟在原创 2022-05-13 11:26:21 · 349 阅读 · 11 评论 -
C++双端队列
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类C++stack和queue文章目录系列文章目录前言一、dequeue是什么?二、dequeue的优势三、dequeue的缺陷前言在介绍双端队列以前先来介绍一下容器适配器适配器是标准库中的一个通用概念,容器,迭代器,和函数都有适配器。本质上,适配器是一种机制,能使某种事物的行为看起来像是另外一种事物一样。一个容器适配器接受一原创 2022-05-12 21:19:30 · 5035 阅读 · 7 评论 -
C++stack和queue
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类C++list类文章目录系列文章目录一、stack是什么?二、stack的使用三、queue是什么?四、queue的使用五、优先级队列六、优先级队列的使用一、stack是什么?1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2. stack是作为容器适配器被实现的原创 2022-05-12 20:39:06 · 668 阅读 · 8 评论 -
C++list类
系列文章目录C++入门C++类和对象(上)C++类和对象(中)C++类和对象(下)C/C++内存管理C++string类C++vector类文章目录系列文章目录一、list是什么?二、使用步骤1.引入库2.读入数据总结一、list是什么?list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素与后一个元素。list与forward_li原创 2022-05-07 14:27:20 · 2738 阅读 · 6 评论 -
C7510:类型从属名称的使用必须以“typename”为前缀
项目场景:为了方便测试,写了一个通用的迭代器打印模板,如下:template<class Con>void PrintContainer(const Con& x){ Con::const_iterator it = x.begin(); while (it != x.end()) { cout << *it << " "; ++it; } cout << endl;}问题描述本来觉得没什么问题,可是运行之后却报出了原创 2022-05-06 16:47:07 · 1700 阅读 · 0 评论 -
C++vector类
系列文章目录文章目录系列文章目录一、vector是什么?二、常用接口说明1.常见的构造函数2.vector iterator的使用3.关于vector的容量4.vector的增删改查2.读入数据总结一、vector是什么?vector是表示可变大小数组的序列容器,类似于数组,vector也采用连续的存储空间来存储元素。这就意味之可以通过下标对vector中元素进行随机访问。同时,其大小是可以动态改变的,会被容器自动处理。本质上讲,vector使用动态内存分配数组来存储它的元素。当新元素插入时,这原创 2022-04-26 22:21:44 · 2417 阅读 · 7 评论 -
C++string类
系列文章目录文章目录系列文章目录前言一、标准库中的string类1.string类简介2.常用接口说明3.string类对象的访问及遍历操作二、使用步骤1.引入库2.读入数据总结前言在C语言中,字符串是以’\0’结尾的字符的集合,为了操作方便,C标准库提供了一些str系列的库函数,但这些库函数与字符串是分离开的,不符合面向对象的编程思想,而且底层空间需要用户自己管理,稍不留神可能就会造成越界访问。所以,C++标准库中增加了string类。一、标准库中的string类1.string类简介s原创 2022-04-22 16:40:34 · 6119 阅读 · 11 评论 -
C++模板初阶
系列文章目录文章目录系列文章目录一、泛型编程二、函数模板2.1 函数模板格式2.2 函数模板原理2.3 函数模板的实例化2.4 模板参数匹配原则三、类模板3.1 类模板的定义格式一、泛型编程我们知道,如果要在C++中实现一个通用的交换函数,可以使用函数重载,例如:void Swap(int& a, int& b){ int temp = a; a = b; b = temp;}void Swap(double& a, double& b){ do原创 2022-04-12 20:16:26 · 105 阅读 · 11 评论 -
C/C++内存管理
系列文章目录文章目录系列文章目录一、C/C++内存分布二、C++内存管理方式2.1 对于内置类型2.2 对于自定义类型三、operator new与operator delete函数3.1 operator new与operator delete3.2 operator new与operator delete的类专属重载。四、new和delete的实现原理。4.1 内置类型4.2 自定义类型五、定位new表达式(placement-new)六、1.引入库2.读入数据总结一、C/C++内存分布当C/C原创 2022-04-11 17:32:08 · 1423 阅读 · 11 评论 -
C++类和对象(下)
系列文章目录文章目录系列文章目录一、再谈构造函数1.1 初始化列表1.2 explicit关键字二、static成员三、友元3.1 友元函数3.2 友元类四、内部类一、再谈构造函数在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。class Date{public: Date(int year, int month, int day) { _year = year; _month = month; _day = day; } private:原创 2022-04-09 19:45:12 · 1006 阅读 · 18 评论 -
C++类和对象(中)
系列文章目录C++入门C++类和对象(上)文章目录系列文章目录前言一、构造函数二、使用步骤1.引入库2.读入数据总结前言如果一个类中什么成员都没有,简称空类。但是空类中真的是什么都没有吗?并不是的,任何一个类在我们不写的情况下会都会自动生成六个默认成员函数。构造函数析构函数拷贝构造函数运算符重载取地址操作符重载const修饰的取地址操作符函数一、构造函数我们之前定义过一个日期类:class Date{public: void SetDate(int year, in原创 2022-04-08 13:21:12 · 1041 阅读 · 20 评论 -
C++类和对象(上)
C++类和对象文章目录C++类和对象关于面向过程和面向对象一、类的引入二、使用步骤1.引入库2.读入数据总结关于面向过程和面向对象C语言是面向过程的,关注的是过程,分析求解问题的步骤,通过函数调用逐步解决问题。C++是面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间交互完成。一、类的引入在C语言中,结构体内只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。二、使用步骤1.引入库代码如下(示例):import numpy as npimport原创 2022-04-06 20:39:40 · 1213 阅读 · 15 评论 -
C++入门
C++入门文章目录C++入门一、命名空间二、C++的输入和输出三、缺省(默认)参数四、函数重载五、引用二、使用步骤1.引入库2.读入数据总结一、命名空间让我们从一个输出hello world的代码开始:#include<iostream>using namespace std;int main(){ cout << "Hello world!" << endl; return 0;}第一行代码,根据我们以往学习的C语言的知识,我们知道他是引原创 2022-04-05 16:04:32 · 1285 阅读 · 11 评论