noCrayon
码龄8年
关注
提问 私信
  • 博客:63,191
    社区:66
    问答:759
    64,016
    总访问量
  • 38
    原创
  • 2,237,912
    排名
  • 14
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2017-03-16
博客简介:

Sakuramyb马永博的博客

查看详细资料
个人成就
  • 获得29次点赞
  • 内容获得5次评论
  • 获得66次收藏
创作历程
  • 4篇
    2019年
  • 11篇
    2018年
  • 26篇
    2017年
成就勋章
TA的专栏
  • 原创
    10篇
创作活动更多

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

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

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

《STL 源码解析》之序列式容器

序列式容器所谓序列容器即容器其中的元素都可序,但未必有序。常见的序列容器包括vector,list,deque,queue以及stack.vectorarray是静态空间,一旦配置就不可改变。vector是动态空间,随着元素的加入,内部机制会自动扩充以容纳新元素。1.1迭代器vector维护的是一个线性区间,所以无论元素类型为何,普通指针都可以作为vector的迭代器而满足所有的必要条件...
转载
发布博客 2019.12.25 ·
220 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Canvas 学习笔记---基础图形的绘制

一、Canvas的坐标系说到坐标系,大家都不陌生,在数学中,我们学习过平面坐标系。在HTML中,也存在着坐标系。Canvas的坐标系和HTML的坐标系是类似的。有一定的相同的地方,也有不同的地方。相同点:Canvas和HTML的坐标系统原点是都处于左上角,X轴上向右递增正数,向左递减;Y轴上向下递增为正数,向上递减。不同点:即Canvas允许我们将原点进行平移,也即通过代码我们可以将Canv...
原创
发布博客 2019.12.20 ·
482 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

《Effitive C++学习》之定制new和delete

第8章 定制new和delete条款49:了解new-handler的行为当operator new无法满足某一内存分配需求时,它就会抛出异常。它就会调用一个用户指定的错误处理函数new-handler(它其实是一个typedef),其实调用的是set_new_handler函数。set_new_handler:获得一个new_handler并返回一个new_handler 的函数。当o...
原创
发布博客 2019.12.20 ·
322 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《设计模式学习总结 一》

第一章 简单工厂模式1.好的设计模式:可维护 ----只需要更改要改的代码可复用----代码可以重复使用可扩展----添加功能只需要另外加入代码就可以灵活性----只需将代码移动就可以做到满足排列需求2.面向对象的好处:通过封装、继承、多态把程序的耦合度降低。用设计模式使得程序更加灵活,容易修改,利于复用。3.尽可能的方法避免重复代码,即让业务逻辑与界面逻辑分开,让它们之间的耦合度下...
原创
发布博客 2019.12.20 ·
202 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C++中的const和引用

首先,我们需要知道什么是引用?定义:引用就是给对象起别名,引用类型引用另一种类型。将声明符写成&d的形式来定义引用类型,其中d是声明的变量名。int size = 100;int &sum = size;要注意的是:我们在引用的时候必须要给引用赋值。例如:int &size;//这种是错误的。在一般的初始化变量的时候,初始值会被拷贝到新建的对象上,而定义...
原创
发布博客 2018.09.25 ·
893 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

TCP/IP协议的三次握手与四次挥手

一、TCP报文格式 上面图中有几个字段重点介绍一下:序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。确认序号:Ack序号,占32位,只有ACK标志为1时,确认序号字段才有效,Ack=Seq+1。 标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下: (A)URG:紧急指针(urgent pointe...
原创
发布博客 2018.08.20 ·
272 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

二叉树的遍历

二叉树的遍历主要包括前序遍历、中序遍历、后序遍历和层序遍历四种,其中前三种是非常常用的,下面介绍前三种遍历的方法。前序遍历 思路:从根结点开始遍历,若二叉树为空,则直接返回NULL,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。如下图所示: 代码实现: 前序遍历递归:class Solution{public: vector<int> ...
原创
发布博客 2018.08.16 ·
226 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

常见的HTTP状态码总结

最近学习了HTTP的相关内容,下面就HTTP的状态码做一个简单的总结。 2开头 (请求成功)表示成功处理了请求的状态代码200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。201 (已创建) 请求成功并且服务器创建了新的资源。。202 (已接受) 服务器已接受请求,但尚未处理。203 (非授权信息) 服务器已成功处理了请求,但返回的...
原创
发布博客 2018.08.14 ·
275 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

编写类String的构造函数、析构函数和赋值函数

问题:编写类String的构造函数、析构函数和赋值函数,已知类String的函数原型为:class String{ public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String &...
原创
发布博客 2018.07.27 ·
2508 阅读 ·
2 点赞 ·
1 评论 ·
17 收藏

修改MySQL数据库编码为UTF-8

一、MySQL数据库的编码字符集1、MySQL的版本不一样当然也会有不同不字符集编码方式,字符编码方式是用一个或多个字节表示字符集中的一个字符,每种字符集都有自己特有的编码方式,因此同一个字符,在不同字符集的编码方式下,会产生不同的二进制。2.字符集种类ASCII字符集:基于罗马字母表的一套字符集,它采用1个字节的低7位表示字符,高位始终为0。LATIN1字符集:相对于ASCII字...
原创
发布博客 2018.04.07 ·
7737 阅读 ·
1 点赞 ·
1 评论 ·
8 收藏

MySQL数据库基础

一、MySQL数据库基础1.什么是数据库?储存数据一般用文件就可以,那么为什么要用数据库呢? 文件保存数据是有缺点的:文件的安全性问题文件不利于查询和对数据的管理文件不利于存放海量数据文件在程序中控制不方便为了解决上述问题,数据库就出现了,数据库能更有效的管理数据。 注意: 数据库的水平是衡量一个程序员水平的重要指标。 因此,数据库是高效的存...
原创
发布博客 2018.04.04 ·
364 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Linux背景

linux背景1.发展史要说Linux,还得从UNIX说起。UNIX发展的历史1968年,一些来自通用电气公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新的概念。1969-1970,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Mul...
原创
发布博客 2018.03.23 ·
2022 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

linux--基础IO

一、熟悉open/read/write/close等文件相关系统调用接口。open//头文件 #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h>//函数原型int open(const char *pathname , int flags);int open(cons...
原创
发布博客 2018.02.14 ·
422 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

进程控制

一、进程的创建、终止和等待。1.进程创建fork():进程是处于执行期的程序以及相关资源的总称,进程在创建它的时候开始存活,在linux系统中,通过使用fork()函数复制一个现有进程来创建一个新进程,调用fork()函数的进程称为父进程,新产生的进程称为子进程,子进程几乎完整的复制了父进程,但至少pid不一样。调用fork()函数系统从内核返回两次:一次返回到父进程,另一次返回到新的子进程。for
原创
发布博客 2018.01.04 ·
380 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

进程调度、僵尸进程和孤儿进程、linux环境变量

一、进程的调度方式,调度算法总结。进程的三种状态1.等状态:等待某个事件的完成。 2.就绪态:等待系统分配处理器以便运行。 3.运行态:占有处理器正在运行。三种状态的转化调度方式剥夺方式:当一个进程正在运行的时候,系统可以基于某种原则,剥夺已分配给他的处理机,将处理机分配给其他进程,剥夺原则有:优先权原则、短进程优先原则、时间片原则。 非剥夺方式:分配程序一但把处理机分配给某进程后就让该进程一
原创
发布博客 2018.01.01 ·
421 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

自主实现一个简单的shell

最近学习linux,打开linux虚拟机在一个“黑框框”中敲下一些命令,就能对应的执行一些操作,通过对shell的进一步学习,对它的底层实现产生了浓厚的兴趣,应该通过学习,下面实现一个简单的迷你版的myshell。一、myshell的执行过程。1.获取命令行。2.解析命令行。3.建立一个子进程。4.替换子进程。5.父进程等待子进程退出。二、根据前面的思路和学过的知识,下面是实现的代码。#includ
原创
发布博客 2017.12.09 ·
562 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

linux实现彩色进度条,rpm和yum安装的区别和进程的task_struck结构

一、在Linux下实现进度条程序. 通过makefile进行编译. 建议自主完成一个彩色的进度条.1.什么是进度条?进度条:进度条是在计算机处理任务时,以图片形式显示处理任务的进度的一种显示。2.要设计一个什么样的进度条呢?那么我们经常见的进度条包括有长方形的条状强调内容从短短的一点一点开始慢慢变长的一个长方体块我们用#代替,还包括一个完成的百分数,当完成时会到达100%。3.进度条如何缓慢显示?想
原创
发布博客 2017.12.03 ·
1626 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Linux基本指令、文件管理权限及Linux重要目录的整理

一.Linux的基本命令1.文件管理命令(1).创建文件-touch —touch file.txt                 创建文件file.txt — touch .file.txt               创建隐藏文件file.txt(文件前加点,表示隐藏) —touch /home/file.txt     在指定目录下创建文件(2).删除文件rm: Linu
原创
发布博客 2017.11.15 ·
571 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

vector和list的使用及其模拟实现

一.vector使用及模拟实现。1.vector简介。 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。 另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内存拷贝。注:vector相当于一个动态增长的数组。2.vecto
原创
发布博客 2017.11.11 ·
503 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c++智能指针(SmartPtr)简单剖析

一、什么是智能指针?智能指针(smart pointer):是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。由于c++语言没有自动回收机制,写代码时总要new一个空间,用完之后必须要delete掉,有时候程序代码过于复杂,经常会忘记delete内存,从而导致程序异退出,因此
原创
发布博客 2017.08.22 ·
2541 阅读 ·
2 点赞 ·
1 评论 ·
8 收藏
加载更多