C++和高阶数据结构
文章平均质量分 95
C++语法和高阶数据结构
格式化、、
不忘初心,方得始终...
展开
-
C++之I/O流
本篇文章进行C++中I/O流学习!!!C语言中,将一个整形数据转换成一个字符串格式时,该怎么做?使用itoa()函数使用sprintf()函数但是两个函数在转化时,都得需要先给出保存结果的空间,那空间要给多大呢,就不太好给定,而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃Test();return 0;}在C++中,可以使用stringstream类对象来避开此问题在程序中如果想要使用stringstream,需要包sstream头文件。原创 2022-10-14 23:29:12 · 1243 阅读 · 0 评论 -
C++之特殊类的设计(包含设计模式)
本篇文章进行C++中特殊类的学习!!!原创 2022-10-10 23:40:10 · 354 阅读 · 0 评论 -
C++11之类型的转换
本篇文章进行C++11中类型转换的学习!!!原创 2022-10-09 19:02:03 · 588 阅读 · 0 评论 -
C++11之智能指针
目录🌈前言🚁1、C++11为什么要引入智能指针?🚂2、内存泄漏🚃2.1、什么是内存泄漏?有什么危害?🚄2.2、内存泄漏分类🚅2.3、检测内存泄漏的方法🚆2.4、如何避免内存泄漏🚇3、智能指针🚈3.1、RAII思想🚉3.2、智能指针的原理🚐3.3、std::auto_ptr(C++98)🚑3.4、C++11和boost中智能指针的关系🚒3.5、std::unique_ptr🚓3.6、std::shared_ptr(重点)🌈前言本篇文章进行C++11中智能指针的学习!!!🚁1、C++11为什么要引入智能原创 2022-10-09 07:40:17 · 410 阅读 · 0 评论 -
C++11之异常
本篇文章进行C++11中异常的学习!!!实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系这样大家抛出的都是继承的派生类对象,捕获使用一个基类就可以了自定义异常涉及继承和多态的知识【继承文章】【多态文章】public :// 错误码内容 };public :// 错误码id };try {throw MyExceptionPlus("未知异常" , 123);原创 2022-10-06 12:04:25 · 211 阅读 · 0 评论 -
C++11之包装器(function)
本篇文章进行C++11中包装器的学习!!!原创 2022-10-03 00:58:18 · 969 阅读 · 0 评论 -
C++11之可变参数模板和lambda表达式
本篇文章进行C++11中可变参数模板和lambda表达式的学习!!!原创 2022-10-01 21:00:35 · 1236 阅读 · 0 评论 -
C++11之右值引用、完美转发和类的新功能
本篇文章进行C++11中右值引用的学习!!!原创 2022-09-28 00:26:00 · 420 阅读 · 0 评论 -
C++11 -- 初识
本篇文章进行C++11的学习!!!C++11相比C++98和03而言,它带来了数量可观的变化,其中包含了140个特性,以及对C++03标准中600个缺陷的修正,这使得C++11更像是从 C++98和03中孕育出的一种新语言C++11能够更好的用于系统开发和库开发,语法更加泛化和简单化,更加稳定安全,不仅功能强大,而且能够提升程序员的开发效率,公司实际项目也用的比较多,我们需要作为重点去学习它…链接。原创 2022-09-27 10:40:59 · 513 阅读 · 0 评论 -
C++之模拟实现<unordered_set/map>及位图和布隆过滤器
本篇文章学习C++STL< unordered_map和unordered_set >的模拟实现!!!原创 2022-09-23 23:47:50 · 505 阅读 · 0 评论 -
数据结构之<哈希表>
本篇文章进行数据结构中哈希表的学习!!!原创 2022-09-23 16:38:01 · 464 阅读 · 0 评论 -
C++STL之<unordered_set 和 unordered_map>
本篇文章进行STL中unordered_set 和 unordered_map的学习!!!原创 2022-09-22 19:37:55 · 588 阅读 · 0 评论 -
C++之<set和map模拟实现>
本篇文章进行STL中map和set的补充!!!原创 2022-08-21 13:24:46 · 572 阅读 · 1 评论 -
数据结构之<RBTree >
本篇文章进行数据结构中RBTree(红黑树)的学习!!!// 红黑树的颜色 enum Color {// RBTree的节点 template < typename K , typename V > struct RBTreeNode {// 节点的左孩子 RBTreeNode < K , V > * right;// 节点的右孩子 RBTreeNode < K , V > * parent;// 节点双亲 pair < K , V > kv;// 数值 Color col;// 颜色 }.........原创 2022-08-15 22:29:01 · 903 阅读 · 0 评论 -
数据结构之< AVLTree >
本篇文章进行数据结构中AVL树的学习!!!// 存储节点值 -- first and second AVLTNode < K , V > * left;int _bf;// 平衡因子,控制树的平衡 };注意:这里的AVLTree节点存储的值是"键值对"AVLTree是通过三叉链来控制的,二叉链也可以,就是麻烦了一些_bf是每个节点的平衡因子,用来控制树的平衡。...原创 2022-08-11 19:56:06 · 635 阅读 · 0 评论 -
C++STL之<set>和<map>
本篇文章进行C++STL中set和map的学习!!!原创 2022-08-10 16:02:30 · 519 阅读 · 0 评论 -
数据结构之<二叉搜索树>
本篇文章进行数据结构中二叉搜索树的学习!!!前言二叉搜索树是由模板定的,节点存储的指针和对象可泛化K_key;};private}注意这里的节点跟二叉树完全一致,都是有二个指针指向左右孩子和存储一个值二叉搜索树查找指定值的思路从根开始比较,查找,比根大则往右边走查找,比根小则往左边走查找最多查找高度次,如果走到空,还没有找到,则这个值不存在}第二种思路使用递归进行查找–分治法,思路跟循环差不多3.从根节点开始查找,大于根值走左子树,小于走右子树4.......原创 2022-07-30 11:38:21 · 614 阅读 · 0 评论 -
<polymorphism>
本篇文章进行C++中类多态(inheritance)的学习!!!本文章代码在x64程序中测试,涉及指针是8bytes的,如果为x86,涉及指针则为4bytes在继承中构成多态的条件有两种:🌻2.3、虚函数的重写跳转到多态的原理虚函数重写的二个例外:(1)2. 析构函数的重写(基类与派生类析构函数的名称不同)🌈前言:1. final:修饰虚函数,表示该虚函数不能再被重写2. override: 检查派生类虚函数是否重写了基类某个虚函数,如果没有重写编译报错🌽2.5、重载、覆盖(重写)...原创 2022-06-29 11:29:51 · 340 阅读 · 0 评论 -
C++之继承<inheritance>
本篇文章进行C++中类继承(inheritance)的学习!!!继承(inheritance):注意:下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类举例1️⃣(public继承):举例2️⃣(protected继承):举例3️⃣(private继承):总结:举个栗子🌰1️⃣:举个栗子🌰2️⃣:6个默认成员函数,"默认"的意思是指我们不写,编译器会帮我们自动生成一个,那么在派生类中,这几个成员函数是如何生成的呢?举个栗子🌰1️⃣:举个例子🌰1️⃣:友....原创 2022-06-15 22:42:22 · 450 阅读 · 1 评论 -
C++STL之<list>
本篇文章进行STL中list(双向链表)序列容器的学习!!!【list的文档介绍】list底层原理图(双向链表):list中的接口比较多,此处类似,只需要掌握如何正确的使用,然后再去深入研究背后的原理,已达到可扩展的能力。以下为list中一些常见的重要接口举个栗子🌰:【注意】举个栗子🌰:举个栗子🌰:举个栗子🌰:注意:二个接口返回的是这个数据的引用,引用可以充当左值…举个栗子🌰1️⃣:举个栗子🌰2️⃣:举个栗子🌰3️⃣:迭代器失效:举个栗子🌰:🍁2、list模拟实现🍂..........原创 2022-06-11 12:01:32 · 1086 阅读 · 4 评论 -
C++STL之<vector>
本篇文章进行STL中vector序列容器的学习!!!【vector文档】举个栗子🌰:举个栗子🌰:举个栗子🌰1️⃣:vs运行结果:g++运行结果:举个栗子🌰2️⃣:注意:这里的尾插、尾删、insert 和 erase接口跟数据结构中的动态顺序表一样举个栗子🌰1️⃣:举个栗子🌰2️⃣:举个栗子🌰3️⃣:注意:迭代器的作用:比如:对于vector可能会导致其迭代器失效的操作有:出错原因:解决方式:指定位置元素删除操作 — erase程序解析:程序解析:解决方案:迭代.......原创 2022-06-08 23:47:07 · 817 阅读 · 3 评论 -
C++之<string class>
这篇文章注意学习string类的基本用法和底层原理!!!string class是标准库中模板类的一个实例,底层是类似一个动态数组【1】字符串转整形【2】字符串相加注意:在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本都使用string类,很少有人去使用C库中的字符串操作函数【string文档介绍】 注意:这个类独立于所使用的编码来处理字节 如果用来处理多字节或变长字符(如UTF-8)的序列,个类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节原创 2022-06-05 18:53:43 · 428 阅读 · 0 评论 -
C++之<STL>简介
这章简介过去后,我们将开始正式的进行 STL的学习!!!STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架…STL距今共有四个版本,分别如下:总结:总结:如果没有STL,那我们必须手造一个轮子来进行题求解在面试中在工作中网上有句话说:“不懂STL,不要说你会C++”。STL是C++中的优秀作品,有了它的陪伴,许多底层的数据结构以及算法都不需要自己重新造轮子,站在前人的肩膀上,健步如飞的快原创 2022-06-04 22:12:49 · 192 阅读 · 0 评论 -
C++之模板<template>
目录🌈前言🌸 模板🌷1、泛型编程🌺2、函数模板🍀2.1、函数模板的概念🍁2.2、函数模板的格式🍂 2.3、函数模板的原理🍌2.4、函数模板的实例化🍃 2.5、模板参数的匹配原则🍒 3、类模板🍕 3.1、类模板的概念🍔 3.2、类模板的格式🍒3.3、类模板的实例化🍖 4、非类型模板参数🍗 5、模板的特化🍙5.1、特化的概念🍛5.2、函数模板的特化🍜5.3、类模板特化🍝 5.3.1、类模板全特化🍞 5.3.2、类模板的偏特化🍟6、模板的分离编译🎆6.1、 什么是分离编译🎆6. 2、解决方法🎇7、模板总结🌈前原创 2022-05-28 17:13:30 · 10101 阅读 · 17 评论 -
C/C++内存管理分析
目录🌈前言🌸 内存管理🌷1、C/C++内存分布🌺2、C语言中内存管理的方式🍀3、C++内存管理方式🍁3.1、new/delete操作内置类型🍂 3.2、new和delete操作自定义类型🍌 4、operator new与operator delete函数🍃 4.1、二个全局函数的概念🍒4.2 operator new与operator delete的类专属重载(了解)🎆5、new和delete的实现原理🍔 5.1、内置类型⭐⭐⭐🍕 5.2、内置类型⭐⭐⭐🍒6、定位new表达式(placement-new)原创 2022-05-27 00:58:52 · 458 阅读 · 1 评论 -
C++类和对象(终)
原创 2022-05-21 20:22:37 · 309 阅读 · 5 评论 -
C++之类和对象(二)
目录前言类和对象前言类和对象原创 2022-05-19 22:51:34 · 312 阅读 · 0 评论 -
C++之类和对象(一)
目录原创 2022-05-15 16:09:55 · 210 阅读 · 5 评论 -
C++初识(四)--- 内联函数&auto&nullptr
目录前言原创 2022-05-13 13:06:11 · 438 阅读 · 2 评论 -
C++初识(三)--- 引用详解
目录原创 2022-05-12 00:52:49 · 393 阅读 · 4 评论 -
C++初识(二)--- 函数重载详解
文章目录一级目录二级目录三级目录一级目录二级目录三级目录原创 2022-05-02 16:50:33 · 654 阅读 · 2 评论 -
C++初识(一)
1. C++关键字 😅2. 命名空间 😅1. C++关键字 �++总计63个关键字,C语言32个关键字asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcaseenummutablestatic.原创 2022-04-29 23:39:39 · 1242 阅读 · 4 评论 -
C++---前言
1. 什么是C++C++C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(objectoriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C原创 2022-04-29 00:29:03 · 146 阅读 · 2 评论