自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 注释转换(C注释风格-C++注释风格)

注释一般来讲有分为两种: 一是单行注释:直接在该行需要注释的地方加上”//”就行 如:// int a=0; int b=0; //定义一个变量 另外还有一种是多行同时注释(不能嵌套使用): 如:/* int a,b; int c,d; */ 其中”/“和”/”起限定范围的作用,该范围内的语句都会被注释掉,将不再起作用。 当然以上多行注释也是可以用来单行注释的 /

2017-07-30 12:31:01 2309

原创 Window10打开MYSQL 5.7 Command 输入密码后闪退的解决方法

原因一:可能是因为你的密码输入有问题,有英文字母一定要使用英文输入原因二、如果密码没有问题,那有可能是电脑上的MYSQL服务没有开启导致的,下面就开启服务。我们使用快捷键Ctrl+Alt+Delete三键组合,然后选择“任务管理器”,再选择“服务”,将MYSQL5.7的进程切换成"开始"就好了。...

2018-09-02 01:40:47 1448 3

原创 【剑指Offer04】替换空格

【题目描述】请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。【思路讲解】【实现代码】class Solution {public: void replaceSpace(char *str,int length) { if(str==NULL) ...

2018-08-23 21:39:01 94

原创 【剑指Offer03】二维数组中的查找

【题目描述】在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。【方法一代码】class Solution {public: bool Find(int target, vector<vector<int> &gt...

2018-08-23 20:50:02 88

原创 【数据结构】排序算法之堆排序

什么是堆?如果下面这张图看不懂的话,那就戳这个什么是堆 那我们今天主要来看怎么利用堆的性质来进行堆排序初始数组: int arr[]={2,5,4,9,3,6,8,7};^_^以下介绍升序排序的步骤第一步:用数组元素创建堆【代码实现】 #include<iostream>using namespace std;#include<a...

2018-08-19 16:30:08 83

原创 如何实现一个只能在栈上或者堆上生成对象的类?

什么才算是在栈上定义的对象?什么是在堆上定义的对象? 堆上:即存放的是由new创建的对象和数组,即动态申请的内存都放在堆内存 栈上:存放的是用来一些基本类型的变量和对象的引用变量 堆就相当于在家自己做饭,吃饭苦逼的还要刷碗,呜呜呜~ 栈就相当于去饭店吃饭,只管吃,不管其他,生活美滋滋~ 【分析】也就是说我们可以将题目理解为: 只能在堆上--->只...

2018-08-16 20:15:07 453

原创 【剑指Offer02】C++实现单例模式

题目:设计一个类,我们只能生成该类的一个实例什么是单例模式?单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例单例模式的静态解析图 单例模式可以分为懒汉式和饿汉式:饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢、获取对象的速度快、以空间换取时间模...

2018-08-07 11:30:44 4313 2

原创 【剑指Offer01】赋值运算符重载

题目:如下为类型为CMyString的声明,请为该类型添加赋值运算符函数class CMyString{public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void);private: char* m_pData;};【考察点】1、是否把返回值的类...

2018-08-07 10:47:21 139

原创 【数据库】基础学习之库的基本操作(增删查备份)

登录上我们的数据库之后,我们就可以来进行一下的基础操作了。。。。。。一、相关库操作1、查看当前数据库中已有的库语句:show databases;2、建库基本语句:create database 库名;例如:新建一个ly库4、显示数据库创建语句:show create database 数据库名;3、使用库:use 库名:4、数据库删除6、查看当...

2018-08-05 11:39:29 130

原创 【每日一题】层序遍历(自顶向下AND自底向上)

前面的文章中我有实现过二叉树的简单函数实现,在这就不详细介绍了,不了解的请戳https://blog.csdn.net/dove1202ly/article/details/79133089今天主要讲【层序遍历】---->面试常考点,必须会哦^ _ ^【题目】给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二...

2018-07-31 10:04:42 498

原创 关于错误 itoa': The POSIX name for this item is deprecated

在VS2013下如果使用itoa的话,会经常出现以下这种情况,对于这种报错,真的很无奈啊,查了好久呢发现改为_itoa也是不行,真的很生气呢。。。。。。。查了网上的好多解决方案,才知道要改成_itoa_s,这样就好了,,,,...

2018-07-22 11:40:59 2013 1

转载 三种单例模式的C++实现

简介        因为在设计或开发中,肯定会有这么一种情况,一个类只能有一个对象被创建,如果有多个对象的话,可能会导致状态的混乱和不一致。这种情况下,单例模式是最恰当的解决办法。它有很多种实现方式,各自的特性不相同,使用的情形也不相同。今天要实现的是常用的三种,分别是饿汉式、懒汉式和多线程式。        通过单例模式, 可以做到:1. 确保一个类只有一个实例被建立 2. 提供了...

2018-07-20 16:19:31 87

原创 【leetcode】合并区间

给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。...

2018-07-16 19:08:52 836

转载 vector常用方法总结

本文转自https://www.cnblogs.com/zhonghuasong/p/5975979.html介绍vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 本质讲,vector使用动态...

2018-07-16 17:52:09 597

原创 【leetcode】17. 电话号码的字母组合

【题目描述】给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].【实现代码】string

2018-07-08 14:58:16 214

原创 正则表达式

       相信我们都见过类似于这样的寻人启示吧,我们要想在茫茫人海中寻找某个人,就相当于从某些信息筛选出某个有用信息,上面的描述中有具体的描述,比如高龄88,失踪前的穿衣打扮,但也有模糊的描述,比如体重略胖,步履略蹒跚等,这跟我们在一堆信息中要筛选出我们需要的信息一样,有时我们知道具体要查找的内容,而有时只知道大概,类似于这样的筛选我们要借助什么完成呢?这就需要深入了解一下我们今天所提到的——...

2018-07-05 23:06:00 78

原创 【Liux】网络基础之应用层篇

我们之前也学过运输层为应用进程提供端到端的通信服务,但不同的网络应用的应用进程之间,还需要有不同的通信规则,因此在运输协议之上,还需要有应用层协议。应用层协议应当定义:1、应用进程交换的报文类型,如请求报文和响应报文2、各种报文类型的语法,如报文中的各个字段及详细描述3、字段的语义,即包含在字段中的信息的含义4、进程何时、如何发送报文,以及对报文进行响应的规则一、域名系统DNS——从域名解析出IP...

2018-06-04 23:25:58 85

原创 【每日一题】输入一个链表,从尾到头打印链表的每一个节点

【在线oj实现】【递归实现】 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };class Solution { public: vector<int>...

2018-06-04 22:31:39 78

原创 【Linux】浅析多线程与多线程相关的简单函数

【概念】在一个程序里的一个执行路线就叫做线程

2018-05-17 16:51:51 5814

原创 【Linux】进程创建之fork与vfork

前面我们了解了进程的基本概念,具体请戳点击打开链接,也提到了一点有关进程创建的概念,我们今天详细来解析一下fork与vfork的区别fork():从已经存在的一个进程中创建一个子进程,并把父进程的内存数据拷贝到子进程中#include<unistd.h>pid_t fork(void);//返回值:子进程返回0,父进程返回子进程id,出错返回-1vfork():创建一个子进程,并和...

2018-05-10 11:40:00 161

原创 对死锁的简单理解

【概念】   死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,例如线程A锁住了记录1并等待记录2,线程B锁住了记录2并等待记录1,这样就产生了死锁现象。【几个相关概念】 1、可重用性资源一种可供用户重复使用多次的资源2...

2018-05-08 20:22:59 593

原创 【C语言复习】实现一个函数,可以左旋字符串中的k个字符

【每日一题】实现一个函数,可以左旋字符串中的k个字符。                     AABCD左旋一个字符得到ABCDA                      AABCD左旋两个字符得到BCDAA 【代码实现】法一:逐个搬移元素法void Rotate1(char *arr,int k)//将要旋转的元素一个一个的旋转过去{ assert(arr); int sz = str...

2018-05-05 22:24:20 93

原创 排序算法之非比较排序【计数排序和基数排序】

------------------------------------------------------- 计数排序---------------------------------------------------------------简而言之就是统计元素出现的个数,并将其放在相应的桶中,这是一种牺牲时间换空间的做法,但是在某种意义上还是特别快的【图解】【性能分析】时间复杂度:设数据有N...

2018-05-03 23:15:10 92

原创 【数据结构】排序算法之归并排序

【算法思想】归并排序是利用归并的思想实现的排序方法,该算法采用“分而治之”的思想将问题分成一些小的问题然后递归实现,最后合而为之。【图解】【代码实现】----->递归实现void Merge(int* arr, const int left, const int mid, const int right, int *temp){ int i = left;//检测指针 int j = ...

2018-05-03 19:02:54 107

原创 【Linux】进程间通信之信号篇

今天我们来看进程间通信中唯一的异步通信机制----->信号我们之前看过信号量,信号量的本质是一个计数器;千万不要跟今天的信号搞混,Linux中的信号是向进程异步发送的事件通知,通知进程有事件(硬件异常、程序执行异常、外部发出信号)发生。进程间可以相互发送信号,内核也可能在内部发送信号。当信号产生时,内核向进程发送信号(在进程所在的进程表项的信号域设置对应于该信号的位图的比特位为0或者为1),...

2018-04-25 20:15:28 93

原创 【Linux】进程间通信之信号量篇

在Linux中支持System V 进程通信的手段有三种:消息队列(Message queue)、信号量(Semaphore)、共享内存(Shared memory)。消息队列点击打开链接、共享内存点击打开链接,今天我们主要来看信号量。。。。在看信号量之前,我们先来看几个概念进程互斥:由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程竞争使用这些资源,进程的这种关系为进程的互斥。也就是说...

2018-04-19 11:44:35 2442 1

原创 并查集disjoin set

在一些应用问题中,需要将n个不同的元素划分为一组不相交的集合,开始时,每个元素自成一个单元素集合,然后按一定规律将归于同一组元素的集合合并。在此过程中要反复用到查询某个元素属于哪个集合的运算。适合于描述这类问题的抽象数据类型的数据结构称之为并查集(union_find set)并查集需要两种数据类型的参数:集合类型和集合元素的类型,在许多情况下,可以用整数作为集合名。如果集合中有n个元素,可以用0...

2018-04-18 22:15:21 244

原创 【Linux】进程间通信之共享内存SharedMemory篇

在前面的博文中,我们认识到了进程间通信的两种方式--->管道点击打开链接以及消息队列点击打开链接,今天我们来看另一种方式---->共享内存之前我们在剖析程序在内存中到底如何分配的时候,我们肯定见过下面的图那,望文生义,linux中的共享内存是不是跟这块的共享内存区有关系呢?【概念】1、共享内存允许两个或多个进程共享一个给定的存储区,这一段村书去可以被两个或两个以上的进程映射到自身的地址...

2018-04-16 22:26:49 915

原创 排序算法之快速排序以及优化

顾名思义,就是一种速度特别快的快速排序也叫分区排序,是目前应用最广泛的排序算法,人如其名,就是很快,而且快速排序算法在空间上只使用一个小的辅助栈,其内部循环也很小,另外快排很容易实现,消耗的资源也很小。【基本思想】(1)任取待排序元素序列中的某个元素(例如取第一个元素)作为基准(2)按照该元素的排序码大小,将整个元素序列划分为左右两个子序列;左侧序列中所有元素的排序码都小于基准值,右侧...

2018-04-14 23:48:16 88 2

原创 三种插入排序算法解析

【前言】我们常见的排序主要分为两类,一类是内部排序,一类是外部排序1.内部排序:数据元素放在内存中的排序2.外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求能在内外村之间移动数据的排序首先我们先来了解一下如何判断一个排序算法的性能好坏?依据是什么?一般而言有三个依据:稳定性、时间复杂度和空间复杂度1.稳定性如果在元素序列中有两个元素A[i]和A[j],他们的排序码K[i]==k[j],...

2018-04-14 18:18:45 788 1

原创 【C语言】实现一个函数,可以左旋字符串中的k个字符。

【每日一题】实现一个函数,可以左旋字符串中的k个字符。                     AABCD左旋一个字符得到ABCDA                     AABCD左旋两个字符得到BCDAA【思路】利用循环【代码实现】void leftmove(char* arr, int sz, int n){ assert(arr); for (int i = 0; i < n...

2018-04-13 21:54:45 89

原创 【C语言】编写一个函数实现n^k,使用递归实现

【每日一题】编写一个函数实现n^k,使用递归实现(代码很简单,就不分析了)int funC(int n, int k){ if (k <= 0) return 0; else if (n == 1) return 1; else if (k == 1) { return n; } else { return n * funC(n, k - 1); }}i...

2018-04-12 21:59:00 428

原创 【C语言】一组数据中只有一个数字出现了一次

【每日一题】一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)【思路】利用异或运算(相同为0,相异为1),就跟冒泡思想一样,从第一个数字开始,让其跟之后的每个字符相比,利用异或运算思想,再设一个标记,将相同的标记起来,然后第二个数字跟他之后的数字作比较.......,一直到最后一个比较完毕为止,(此处需要循环实现)然后将标记出来的那个单独的数字输出就OK了...

2018-04-12 21:57:23 275

原创 【C语言】写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

【每日一题】写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19;【思路】首先我们先考虑特殊情况(1)当n小于0时(负数)------>返回0(2)当n大于等于0且小于9时(个位数)------>直接返回(3)当大于九时(多位数)------->利用递归思想,先思考如何获得个位...

2018-04-12 21:45:47 516

原创 【Linux】初识进程-基本概念

什么是进程?      进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,简单点说进程就是程序的一个执行实例或者正在执行的程序等,站在内核的角度,进程就是担当分配系统资源(CPU时间,内存)的实体程序与进程1.概念 程序:完成特定任务的一系列指令集合  进程:--->从用户角度看,进程是程序的一次动态执行过程       分时系统:...

2018-04-07 22:33:13 103

原创 【Linux】进程间通信之消息队列篇

上篇我们讲了管道,那么今天我们着重来看看消息队列:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识,消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限制等缺点那么什么是消息队列呢?消息队列有哪些特点呢?消息队列提供了一个由一个进程向另外一个进程发送一块数据的方法每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值消息队列也有管道一样的不足,就是每...

2018-04-03 11:34:55 212

原创 【Linux】进程间通信之管道篇

首先我们来了解一下什么是进程间通信?进程间通信就如同人与人之间的交流一样,注重方式,各有利弊。通俗点讲进程间通信就是在不同进程之间传播或交换信息,那么,我们都知道进程之间是相互独立的,那么进程间通信的本质就是让两个毫不相干的进程看到同一份资源,那么我们又是如何解决这些矛盾的呢?我们实现进程间通信的主要目的是什么呢?1.数据传输:一个进程需要将它的数据发送给另一个进程2.资源共享:多个进程之间共享同...

2018-04-02 19:47:11 124

原创 【Linux】浅析文件描述符fd与文件指针FILE*

我们先来回顾几个代码。。。。。在C语言中往一个文件中写入内容我们这样写(C文件接口)int main(){ FILE* fp = fopen("myfile", "r"); //原型:FILE *fopen(const char *path, const char *mode); if (!fp) { printf("fopen error\n"); } const...

2018-03-25 21:40:48 191

原创 【Linux】Makefile是什么,怎么写Makefile?

什么是Makefile?之前我们都是在VS上编写代码,或许不太注重代码是如何运行生成结果的,因为系统在底下实现了这些功能,不过我们当时应该学了,在VS上的代码要经过(预处理-汇编-连接)等步骤才会生成目标文件,最后才会将正确的运行结果显示在屏幕上;那么,在unix下makefile关系到整个工程的编译规则,一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了...

2018-03-25 19:14:37 1369 1

原创 【Linux】Linux文件权限问题

      首先,我们得知道:Linux下有两种用户:超级用户(root)、普通用户;我们利用su[用户名]命令,来回切换用户(普通用户切换到root用户时,su可以省略)下面我们就进入今天得主题---->文件权限问题~通过上图,我们来简单认识一下以下概念~文件访问者分类1.user(文件和文件目录的所有者)2.group(文件和文件目录的所有者所在的组的用户)3.other(其他用户)文件...

2018-03-19 21:34:49 276

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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