C++
文章平均质量分 92
真的王
这个作者很懒,什么都没留下…
展开
-
【C++】继承与面向对象设计
C++继承多态的进阶应用原创 2022-12-19 15:37:42 · 556 阅读 · 0 评论 -
【C++】Pimpl
如果只是因为若干成本原因而放弃使用Pimpl是严重错误的,virtual也带来了若干成本,应该以渐进的方式使用这些技术,在工程中使用以求得代码有所变化时对服务带来最小冲击。原创 2022-12-17 17:36:05 · 1033 阅读 · 0 评论 -
【数据结构与算法】跳表
跳表是一个随机化的数据结构,可以被看做二叉树的一个变种,它在性能上和红黑树,AVL树不相上下,但是跳表的原理非常简单,目前在Redis和LeveIDB中都有用到。它采用随机技术决定链表中哪些节点应增加向前指针以及在该节点中应增加多少个指针。跳表结构的头节点需有足够的指针域,以满足可能构造最大级数的需要,而尾节点不需要指针域。采用这种随机技术,跳表中的搜索、插入、删除操作的时间均为O(logn),然而,最坏情况下时间复杂性却变成O(n)。原创 2022-12-13 17:49:32 · 891 阅读 · 0 评论 -
【数据结构与算法】B_树
我们已经有很多索引的数据结构了例如:顺序查找 、二分查找 、二叉搜索树 、二叉平衡树(AVL树和红黑树) 、哈希以上结构适合于数据量相对较小,能够一次性存放在内存中,进行数据查找如果数据量很大,一次性无法放进内存中,那么只能存放到磁盘上,如果要进行搜索,只能将关键字映射的数据的地址存放到搜索树的节点中,要访问数据,就要先去磁盘中读取磁盘的速度是远低于内存的,虽然平衡搜索树的时间复杂度是O(log H)(H是高度)原创 2022-12-12 18:44:27 · 643 阅读 · 0 评论 -
【数据结构与算法】图
以上就是今天要讲的内容,本文仅仅简单介绍了图论相关简单内容。原创 2022-12-10 15:51:17 · 633 阅读 · 0 评论 -
【数据结构与算法】并查集
并查集被很多OIer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作:在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类问题的抽象数据类型称为并查集(union-fifind-set)。 通俗的来说就是找朋友问题假如现在有10个人,分别是{0,1,2,3,4,5,6,7,8,9}他们有些人之原创 2022-12-05 20:44:52 · 429 阅读 · 0 评论 -
【C++】IO流
以上就是今天要讲的内容,本文仅仅简单介绍了C++IO。原创 2022-11-30 23:44:02 · 675 阅读 · 0 评论 -
【C++】特殊类的设计
以上就是今天要讲的内容,本文仅仅简单介绍了特殊类的设计。原创 2022-11-29 22:43:35 · 358 阅读 · 0 评论 -
【C++】类型转换
以上就是今天要讲的内容,本文仅仅简单介绍了C++的类型转换。原创 2022-11-29 16:17:55 · 969 阅读 · 0 评论 -
【C++】异常
以上就是今天要讲的内容,本文仅仅简单介绍了C++异常。原创 2022-11-22 15:49:30 · 551 阅读 · 0 评论 -
【C++】C++11部分特性
例如:以上就是今天要讲的内容,本文仅仅简单介绍了C++11相关特性。原创 2022-11-20 20:20:12 · 566 阅读 · 0 评论 -
【C++】哈希相关问题
我们可以采取这样的思路:把1这个数放到下标为0的位置,2放到下标为1的位置,按照这个思路将数组整理一遍,然后再遍历一遍数组,第一个遇到的它的值不等于下标+1的那个数就是我们要寻找的数字。首先要实现迭代器,通过查看stl源码可以知道,HashTable的迭代器中不但有节点的指针,还有,哈希表的指针,这是为了方便++时,跳转到下一个哈希桶。=这几个运算符重载,这里扩容也是有一定的学问的,我们不能直接粗暴的将哈希表扩容到原来的2倍,为了降低冲突的概率,我们每次扩容时都会扩容到原哈希表的二倍左右的素数。原创 2022-11-13 17:33:31 · 798 阅读 · 0 评论 -
【C++】set和map
map与set也十分的相似,map是K/V的模型,set是K的模型map也有两种区别与set和multiset相同,只是键值是否允许冗余的差别不过map的插入就比较特别了我们发现insert的参数是一个value_type类型然后我们发现它实际上是一个pair{T1 first;T2 second;{}{}};用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value表示与key对应的信息。原创 2022-11-06 17:45:23 · 7218 阅读 · 0 评论 -
【C++】红黑树简单实现
以上就是今天要讲的内容,本文仅仅简单介绍了红黑树的基本结构和插入操作。原创 2022-11-03 17:27:01 · 132 阅读 · 0 评论 -
【C++】AVL树的简单实现
AVL树是为了弥补搜索树插入时,效率问题而提出来的一种树形结构二叉搜索树在搜索时的效率比较高是O(logH),也就是说搜索树的搜索效率依赖于树的高度,当搜索树插入数据是有序或者接近有序时,树的高度是N(有N个数据),搜索效率就会退化到O(N),因此要提高搜索树的效率,就是要尽量使树的高度低,AVL树就是一颗高度平衡的二叉搜索树。原创 2022-11-03 11:48:50 · 437 阅读 · 0 评论 -
【C++】二叉搜索树
二叉搜索树的简单应用及实现。原创 2022-10-24 10:06:39 · 1938 阅读 · 0 评论 -
【C++】浅谈多态
C++多态相关知识详解原创 2022-10-23 16:12:00 · 1130 阅读 · 0 评论 -
【C++】继承
继承简谈原创 2022-10-16 21:01:09 · 609 阅读 · 0 评论 -
【C++】模板进阶
函数模板的简单介绍原创 2022-10-02 16:01:29 · 554 阅读 · 0 评论 -
【C++】反向迭代器
反向迭代器的简单模拟实现原创 2022-10-02 14:38:41 · 1108 阅读 · 0 评论 -
【C++】stack && queue && priority_queue的模拟实现
容器适配器的模拟实现,及仿函数的相关内容原创 2022-09-25 22:29:19 · 357 阅读 · 0 评论 -
【C++】list的模拟实现
list的简单模拟实现原创 2022-09-25 14:29:05 · 646 阅读 · 0 评论 -
【Linux】浅谈进程等待
waitpid简单使用原创 2022-09-20 16:29:26 · 389 阅读 · 0 评论 -
【C++】vector的模拟实现
vector是STL中特别常用的容器,它能够给我们提供类似于C语言的数组的用法,[ ]是它最常用的遍历方式它具有多个构造函数在后面我们会一一实现vector是一个模板类,类中的元素可以是任意数据类型,最常用的就是二维数组vector 最外层的vector的每个元素都是vector类型,内部的vector的每个元素的数据类型是int,这种结构使用起来就特别像C语言的二维数组vector的其它成员函数,与string中的类似,就不一一赘述了。原创 2022-09-18 16:25:16 · 645 阅读 · 0 评论 -
【C++】string类的模拟实现
string类的模拟实现原创 2022-08-15 19:29:21 · 603 阅读 · 0 评论 -
【C++】初识模板
模板(Template)在C++程序设计语言中,是指函数模板与类模板[1],是一种参数化类型机制。Java和C#中的泛型与C++的模板大体对应,但也有一些功能上的显著差异(C++模板支持两者没有明确对应的模板模板参数和模板非类型参数,但不支持Java的通配符以及C#的泛型类型约束)。模板是C++的泛型编程中不可缺少的一部分。模板是C++程序员绝佳的武器,特别是结合了多重继承与运算符重载之后。C++的标准函数库提供的许多有用的函数大多结合了模板的概念,如STL以及iostream。——摘自维基百科。.....原创 2022-08-10 12:21:04 · 721 阅读 · 0 评论 -
【C++】内存管理
内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更难检测。因为内存泄漏的产生原因是内存块未被释放,属于遗漏型缺陷而不是过错型缺陷。此外,内存泄漏通常不会直接产生可观察的错误症状,而是逐渐积累,降低系统整体性能,极端的情况下可能使系统崩溃。...原创 2022-08-07 17:45:52 · 563 阅读 · 0 评论 -
【C++】类和对象——下
本文简单介绍C++类和对象。以上就是今天要讲的内容,本文仅仅简单介绍了类和对象,类和对象中还有其它细节。原创 2022-08-07 16:06:58 · 338 阅读 · 0 评论 -
【C++】类和对象——中
看完这篇C++类和对象就没有问题了原创 2022-07-25 17:29:33 · 265 阅读 · 1 评论 -
【C++】类和对象——上
1、声明和定义全部放在类中,在符合内联的条件编译器可能会将其当作内联函数来处理内联的条件函数较短,调用频繁,没有递归{public{}privateint_age;};这是将定义和声明全部放在类中2、声明放在类的头文件中,定义放在类的实现文件中//Person.h{publicprivateint_age;};{}综上所述,类的定义应该满足这样的原则1.小函数,想成为inline,直接在类中定义2.大函数,声明和定义分离。...原创 2022-07-19 10:45:21 · 179 阅读 · 0 评论 -
【C++】基础知识
目录一、命名空间二、缺省参数三、函数重载四、extern C五、引用前言在学习C++过程中,网络上很多资料和视频中都直接告诉我们要在引完头文件之后加上using namespace std; 很多时候学到最后也没有弄清楚为什么要加上这一条语句,这实际上就是C++的命名空间。以这样的代码为例:首先定义一个int型变量scanf,然后调用sacnf来从控制台获取数据,这时就会出现问题scanf是C语言中的库函数,可是我们一不小心定义的变量或者函数名称与库中函数名相同了,这是十分尴尬的情况,在平时的工程中我原创 2022-07-10 09:50:38 · 395 阅读 · 0 评论