唯梦轻语
码龄5年
关注
提问 私信
  • 博客:26,669
    社区:4
    26,673
    总访问量
  • 40
    原创
  • 353,377
    排名
  • 6
    粉丝
  • 0
    铁粉

个人简介:走过路过方知不易

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2019-09-09
博客简介:

dream_i_success的博客

查看详细资料
个人成就
  • 获得17次点赞
  • 内容获得11次评论
  • 获得64次收藏
创作历程
  • 29篇
    2021年
  • 10篇
    2020年
  • 1篇
    2019年
成就勋章
TA的专栏
  • 知识点
    29篇
  • 基础
    28篇
  • 笔记
    9篇
  • 存储
    3篇
  • Linux
    11篇
  • 11
  • C语言
    11篇
  • 栈
    1篇
  • 详解
    3篇
  • 字节对齐
    1篇
  • 大小端
    1篇
  • string
    1篇
  • 函数模拟编写
    1篇
  • 三子棋
    1篇
  • 小游戏
    1篇
  • 变量详解
    1篇
兴趣领域 设置
  • 数据结构与算法
    推荐算法
  • 人工智能
    集成学习
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++基础入门 String常用接口的底层模拟

常见构造接口及实现以下为部分讲解代码,具体代码详见文末完整代码代码实现· 1.经典写法class _string{public: //默认没有参数的构造 _string()//至少开辟一个空间存档'\0',这样不会指向空 :_data(new char[1]) { _data[0] = '\0'; } //全缺省构造函数 _string(const char* ch = "") :_data(new char[strlen(ch)+1])//为_data开辟空间,包括最后
原创
发布博客 2021.03.28 ·
165 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++——vector介绍及使用详解

vector是我们C++中会经常使用的一个容器类型,可以将其理解成一个可变换大小的数组。因此,vector也是采用连续存储空间对数据进行存储,可以使用下标对其进行访问,但是与数组有区别的在于,其大小可以动态改变的。
原创
发布博客 2021.04.10 ·
548 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C++入门基础(十二) string类的常用接口

类的出现是对于C语言中的str系列库函数的升级版,主要是用来处理一系列字符串类型的操作,具有相当大的作用,这里我们介绍其几个常用的接口,并在下一篇文章中通过代码模拟出其在底层的实现。
原创
发布博客 2021.03.27 ·
359 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++入门基础(十一) STL介绍

在学习完之间C++模板的相关知识之后,我们仿佛打开了一个新世界的大门,原来代码还可以这样用,但是问题又来了,即使是有模板了但是这个模板还要写出来,这样是不是太麻烦了,好像还没有到达懒的真正境界,那么为了满足大部分懒人的需要,惠普实验室来了一手绝活,他们将大量的函数模板、算法等等全部进行总结归纳,编写写成了一个巨大的仓库,这样程序员们在使用时只要调用相关函数接口便可以省下大把的头发,这个库就是我们长常说的STL标准模板库。
原创
发布博客 2021.03.27 ·
520 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++入门基础(十) 模板、类模板、模板函数总结

前言 &emsp有句话是这么说的:世界是由懒人创造的,在我们的计算机世界中同样如此。我们之前说到,为了将同一个功能的实现简单化,我们学习了重载的相关知识,但是重载也有一个缺陷,就是需要将不同类型的变量所对应的函数一 一写出,就比如我们想要实现两个数的交换,那么问题来了,这个数有int、double、char等等类型,如果要满足任意类型的交换是不是要写好多的重载函数?那完全大可不必,为了方便绝大多数的“懒人”,C++便又推出了一项黑科技——模板,在定义函数时我们先不规定是什么类型的,只要你来我都可以
原创
发布博客 2021.03.22 ·
166 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux --僵尸进程

概念  僵尸进程,Linux中记为 Z 是进程运行时可能会出现的有一种状态,其是当进程退出时父进程本没有读取到子进程退出的返回代码,也就是说,子进程先于父进程结束,而父进程并没有回收子进程,进行占用资源的释放,这个时候该进程便成为了僵尸态。表现  当僵尸进程产生之后,该进程便会以终止状态保持在进程表中,并且会一直等待父进程读取退出状态代码。僵尸进程的危害僵尸进程出现后必会有子进程以终止状态保持,不上不下的。占用资源,产生内存泄漏每一个内核创造进程的数量是有一定的,处于僵尸态的进程不进行回收会
原创
发布博客 2021.03.20 ·
154 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++入门基础(九) new & delete

前言  在内存的应用中,我们继续深入展开。内存是如何开辟的?我们知道在编写程序之后,编译器会自动的给变量、常量数据、静态数据等给予对应的内存空间作为储存,而当我们的程序稍微复杂一点,需要进行有意识的根据不同场景开辟不同大小的空间去使用,该如何实现呢?因此在这里我们有一个概念叫做空间的动态开辟,在C语言中我们会使用malloc、calloc或者realloc去进行一定大小空间的开辟,使用free在最后对开辟的空间进行释放。这些方式在C++中同样适用,但是在有一些特殊的地方使用起来往往比较麻烦有时甚至无法使用
原创
发布博客 2021.03.18 ·
233 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++入门基础(八) 内存分布一览

  内存,一个看不见也摸不着的东西,我们每天都在接触它但是却很少真正去了解过它。在我们学习程序语言时,是不是经常会接触内存泄漏、动态开辟、地址等等的词语?是的,它们均与我们所说的内存有着千丝万缕的关系,今天,我们便走进内存,简单了解其基本的构造。内存的六大分区  我们常说的内存分区一般有两种分法,其一是常说的五大分区,分别是堆、栈、自由存储区、全局/静态存储区以及常量存储区;而另一种我们说是六大段,其分别是内核空间、栈、内存映射区、堆、数据段、代码段。内核空间  通常,计算机会在默认情况在将高地址的
原创
发布博客 2021.03.17 ·
147 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++入门基础(七) 友元 友元函数 友元类

  我们都知道,C++是一种面向对象的语言,在之前的内容中我们说过,为了区别成员变量不同的访问权限,C++采用了三种不同的权限限定符(分别是:public,private,protect)以满足不同用户的访问需求,同时对一些重要的成员进行保护。但是在这看似美妙的外表下同时也蕴含着一些小问题,就比如今天我们要引出的一个概念——友元。  在一般情况下,我们允许类中的一些特定的成员函数访问其中的私有成员,同时拒绝一般的访问请求,但是我们在实际使用中需要有一些操作经常访问这些私有元素,那么就需要在保护私有成员的同
原创
发布博客 2021.03.16 ·
286 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

C++入门基础(六) operator 运算符重载及日期类代码示例

  在之前的学习过程中,我们遇到了关于运算符重载的相关知识(出现于类的六个默认成员函数中赋值运算符重载,详细可参考上期博客C++入门基础(五) 类的六个默认成员函数详解),在那里我们知道了什么 叫运算符重载,为什么要重载?重载的功能是什么?但是其具体该如何运用呢?本篇博客中我们将通过一个日期类的示例具体进行学习。运算符重载运算符重载概念  在C++面向对象的语言中,允许在同一作用域中的某个运算符指定多个定义,我们称之为运算符重载,此时当我们再次调用重载运算符时,编译器通过该运算符使用场景中所携带的参
原创
发布博客 2021.03.15 ·
470 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

C++入门基础(五) 类的六个默认成员函数详解

在C++的类中一共有六个默认函数,分别是:构造函数、析构函数、拷贝构造函数、赋值运算符重载函数、取地址操作符重载、const修饰的取地址操作符重载。如果我们创建一个类,类里我们一个成员都不给,那么这里面什么都没有吗?实际上不是这样的,这个时候会自动生成以上所提到的六个默认成员函数,接下来我们将以一个日期类为例,对这六个默认函数依次进行介绍。class Date{public: Date();//构造函数 ~Date();//析构函数 Date(const Date& o
原创
发布博客 2021.03.15 ·
382 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

C++入门基础(四) 类 访问权限限定字符 this指针

  众所周知,C++是一门面向对象的语言,其关注的是对象,是将一件事情拆分成不同的对象,靠对象之间的交互完成的。就相当于,我们建一栋房子,有专门的打地基的,专门盖房子的,专门装潢的等等,而盖房子的东家只用和他们的负责人沟通就行,而至于这些负责人怎么把活干出来则是他们底下自己的事情,这样的形式便称作面向对象,如此将大大降低使用者的难度。这里我们将介绍C++中的一个特殊的结构——类。类...
原创
发布博客 2021.03.14 ·
331 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

C++入门基础(三) 内联函数、auto

内联函数
原创
发布博客 2021.03.11 ·
306 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

C++入门基础(二) 函数重载、引用

函数重载当我们需要调用某一种功能时,都需要调用其对应的某一个函数,但是如果要记住如此多的函数名这无疑是一件非常困难的事情,就比如咱们需要在电脑上通过程序画一幅图片一样,我们需要画圆、长方形、正方形、三角形、直线等等,但是如果我们将其以此定义函数一方面名称太多不好记忆,另一方面编写过于杂乱没有条理,因此,我们能不能就使用一个函数,但是依据某种方法,去画出不同的图形?在这里,介绍一种叫做函数重载的使用方法。函数重载是指函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参
原创
发布博客 2021.03.09 ·
252 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

C++入门基础 (一) 关键字、命名空间、输入/输出、缺省参数

1.关键字区别于C语言的关键词,c++在其基础上进行了增加扩展,共计63个关键字,而C语言只有32个,同时c++兼容C语言的关键字,具体如下:asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcaseenummutables
原创
发布博客 2021.03.08 ·
265 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Linux 知识点归纳(一) 进程概念 以及 查看进程的方法

   在我们学习Linux的进程的相关知识之前首先要了解一点基础性的知识。一、冯·诺依曼体系结构首先要先知道一种经典的计算机体系结构——冯·诺依曼体系结构,是现代计算机的硬件体系结构,这里不再赘述,具体详见百度百科:冯·诺依曼体系结构如以下经典结构图:[图片源自百度]通过了解我们可以知道以下几个特点:[1].计算机处理的数据与指令全部都采用二进制的形式表示[2].该结构下是顺序执行程序、[3].计算机硬件方面主要由运算器、控制器、存储器、输入设备和输出设备五大部分组成[4]运算器和处理
原创
发布博客 2021.03.20 ·
242 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux下的常用工具(四)项目自动化构建工具 Makefile make

  在现实生活中我们进行某一项功能往往不能仅仅依赖于一个文件的代码进行操作,需要多个不同的版块进行组合实现,这个时候需要构建成一个项目,将所有的模块打包组合实现最终功能。MakefileMakefile是一个文本文件,记录一个项目的构建规则流程。在工作中会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力,同时一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚
原创
发布博客 2021.03.05 ·
305 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

Linux下的常用工具(三)调试器 gdb

在我们编写完程序之后,往往很难一次就实现我们所要实现的功能,特别是在进行一些大的程序的编写以及复杂的逻辑运算上,这时便需要一系列的调试过程,观察其运行状态发现出现问题的地方,这里我们主要使用gdb调试工具...
原创
发布博客 2021.03.04 ·
236 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Linux下的常用工具(二)编译器 gcc

  现如今我们使用的无论是C语言、C++或者是Java等 编程语言都是高级语言,其出现的主要目的是为了方便编程人员进行程序的编写,而这些指令越来越趋近于人类日常使用的语言,我们的计算机是识别不出来的,就像是一个中国作家写了一本书,如果一般的外国人想要读的话,那就必须有人翻译出译本才行。计算机也是同样,而这时我们的编译器便充当了翻译的使者。即编译器是将上层高级语言代码就是成为对应平台的cpu指令,能够被cpu识别执行。编译的过程  在学习编译器工作之前,我们首先要知道正常的一个程序文件在编译时需要经历的各
原创
发布博客 2021.03.04 ·
547 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Linux下的常用工具(一) yum vim

  Linux的基本功出来之前几张的基础指令外,还有一些常用工具,如软件包管理工具、编辑器、编译器、调试器、项目构建工具、项目管理工具等软件包管理工具  我们使用windows操作系统时,经常会下载一些有趣的应用于电脑上以方便自己使用或者娱乐。而在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译
原创
发布博客 2021.03.03 ·
321 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏
加载更多