自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 String类的使用与模拟实现

String类的使用与模拟实现1.关于String类?1.1问题来源:首先我们要知道,在C语言中,字符串就是一个以’\0’结尾的字符集合。既然是这样,那我们为什么不尝试在C++这门面向对象的语言里,将其封装成一个类,以便大众使用呢?这就是为啥会有这样一个类的存在——String2.让我们瞅瞅库中对String的介绍String文库文档大致总结:string类,是一个表示字符串的类string类提供的接口和常规容器的接口差不多,但是也多加了一些特殊的接口来操作string类s

2021-09-29 15:50:36 283 1

原创 leetcode_215

215.数组中的第K个最大元素题目阐述:给定整数数组nums和整数k,请返回数组中第k个最大的数组。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素Eg1:input: [3,2,1,5,6,4] 和 k = 2output: 5Eg2:input: [3,2,3,1,2,4,5,5,6] 和 k = 4output: 4notes:1 <= k <= nums.length <= 104-104 <= nums[i]

2021-09-12 18:09:08 165

原创 STL容器介绍——list的源码剖析和部分代码模拟实现

list1.list概述2.list的数据结构3.list的迭代器(operator)4.list的接口设计push_back()insert()erase()其余接口1.list概述好说,相信能点进这篇文章的大部分人应该都了解和学习过list——链表,相较于vector——顺序表(可随机访问),list的好处就在于它不需要开辟一些可能会浪费的空间,在它每次插入和删除元素的同时,对于堆栈上的空间就只会相对应的配置和释放一个元素内存。这也同时给它赋予另外一个好处:插入pus

2021-09-04 11:53:04 342

原创 STL容器介绍——vector的源码剖析和模拟实现

写在开头,此文章参考:侯捷——《STL源码剖析》1.vector概述:相较于我们熟悉的数组(array)来说,vector的操作方式和它几乎毫无差别。但回到了C++这门语言上,这门在内存空间上苛刻要求的情况下,vector则友好得多。学过数据结构的同学们都知道,这其实就差不多是个顺序表———一个可自动配置新空间的array。好处就在于,它是一个动态空间,随着新的元素的加入,它内部可以自行扩张空间(capacity)以容纳下新的元素,我们也就不必害怕空间不足而开始就花费大量的内存去开辟一个很大的arra

2021-08-12 19:14:34 399

原创 数据结构——堆

数据结构————堆目录堆的概念及其结构堆的实现堆的创建堆的插入堆的删除堆排序最终代码实现注:这里的堆还没牵扯到优先级队列一.堆的概念及其结构本章用到的这种工具叫做二叉堆,为了方便叫法,我们一般直接称其为堆——Heap1.概念既然是二叉堆,顾名思义,它其实就是基于完全二叉树结构的一种数据结构 如果你不知道二叉树,=W=那就。。2.结构结构有物理结构和逻辑结构。物理结构一般我们构建堆时,考虑到数组的方便性(容易找到父亲和儿子的位置关系,不需要使用指针)的情况下,我们优

2021-05-01 22:16:03 654 6

原创 数据结构之“快慢指针” ---leetcode经典例题讲解和思路

今天又掌握到了一个新的操作——“快慢指针”先介绍一下快慢指针吧其实顾名思义,就是定义N个指针,其中有快有慢。还是给出例子比较好理解——在有序链表中找出中间节点,返回节点(序列号)肯定有人和我看到它的第一想法一样:“简单嘛,先遍历一遍,计算出链表的总长度N,然后再遍历一遍找到N/2确实,这是最好想的方法,但是如果要求只能遍历一遍呢?这个时候我就学到了这个操作——快慢指针(如果让我想,我感觉我想大半天估计都想不到这个方法。。。)首先思路很简单,你想,小明和小红进行100M的赛跑,小明是一个腿比较长

2021-02-10 18:00:42 1281

原创 leetcode上关于单向链表的《反转链表》求解步骤及思路(C语言)

##1.《反转链表》 ——《剑指Offer》题干如下:题目所给接口如下:解题:方法一:——定义三个指针,一步步迭代将链表逆置思路:既然想要逆置,很好的就可以想到定义两个指针来指向这个链表的头和头的下一个节点,因为这样的话,我们只需让n2 -> next = n1;即可完成这两个链表的逆置n2->next = n1;//完成1 和 2 的逆置但这样想了想,好像有点不太对劲。因为我们这样做的话,我们就找不到 3 了很自然的我们可以想到再去定义一个指针来指向 3 这样,就可

2021-02-06 18:48:14 1584 1

原创 关于操作符/位操作 的操作方法和应用 附加(整形提升)(C语言)

关于操作符/位操作 的操作方法和应用 附加(整形提升)(C语言)1.了解什么是位操作(二进制数,位)2.关于位操作符的详解( ‘&’ ‘|’ ‘~’ )3.位移操作符(">>","<<")4.位异或的一些妙用Hellolo关于这一章的话,之所以想成写一篇博客是因为这一章在我们学校高级语言程序课中基本就是草草概括,正巧寒假开始数据结构,也在Leetcode上了解到可以巧妙运用位操作来解决一些时间空间”双杀“的问题。所以,一鼓作气,写下这篇Blog,也好让自己巩固

2021-01-29 20:13:51 1453 1

原创 关于递归循环的总结(包含题目解析与思路)

C语言函数————递归(曾经困扰我很久的问题)相信大家在一开始学习函数这一章节的时候,像我这样的白痴脑袋曾经被递归这一算法思想困扰了很久。所以这样一篇博客早已是大一上学期刚学完递归后的我想总结的小节,这不刚放寒假嘛,赶紧抓住这一时机,写下了这样一篇博客~希望大家看完发现错误后能即使留言批评与纠正。首先先介绍一下递归递归,顾名思义,就是套娃(doge)。所以刚开始作为刚接触语言学习的我来说,我就纯把递归理解为循环了,因为都是对代码的反复使用。虽说这样理解好像没啥很大的毛病,因为可以使用循环的地方通常

2021-01-22 21:13:56 4963 9

原创 我的第一篇博客

大家好我是一名大一本科生,现就读于北京工业大学软件工程系**本人从小对编程和计算机颇感兴趣,所以高考结束后选择了继续往我的兴趣发展。现在目前正在C/C++的道路上学习,后期打算从事嵌入式类工作我认为兴趣是最好的老师,也坚信我能走下去很高兴能在CSDN这样的大舞台与各位见面**...

2021-01-13 17:16:09 148

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除