自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 在MAC中,如何查看自己的电脑安装了git

2019-04-16 17:28:33 3260

原创 C++三大特性--多态

多态的概念 多态的分类 C++中多态的实现原理一、多态的概念在说多态之前,我们来先看一看对象的类型 来看一个例子: 多态:意思既是同一个事物的多种形态,用我们C++的专业词语来说就是:一个借口、多种实现方式。二、多态分类静态多态: 静态多态:编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用那个函数,如果有对应的函...

2018-08-28 17:24:09 1208

原创 C++设计一个类:只能在堆上创建对象、只能在栈上创建对象、只能创建一个对象

在C++中,创建类的对象有两种方法,一种是静态建立,A a; 另一种是动态建立,调用new 操作符。一、只能在堆上创建对象就是动态建立类的对象,使用new操作符来完成。 做法一:将该类的构造函数和析构函数权限设为protected,(可以让该类可以被继承),然后定义两个static 函数来调用new ,delete 来创建和销毁对象。class A{protected: ...

2018-08-23 13:25:44 1277

原创 剑指offer--找出字符串中第一个只出现一次的字符(题面已经更新)C++

题目描述:找出字符串中第一个只出现一次的字符输入描述:输入一个非空字符串输出描述:输出第一个只出现一次的字符,如果不存在输出-1示例1 输入asdfasdfo 输出ö代码实现如下:#include<iostream>#include<string>#include<map>using namespace std;i...

2018-08-23 08:17:39 1504

原创 C++类的六个默认成员函数

先来定义一个类class A{};经过编译器处理之后,类A不在为空,它会自动的生成六个默认的成员函数,即使这六个成员函数什么也不做。(这些成员函数当我们没有定义时,编译器会显示的调用)处理之后相当于:class A{public: A();//构造函数 A(const A& a);//拷贝构造函数 ~A();//析构函数 A&...

2018-08-22 19:30:11 1750

原创 C++三大特性--封装

封装的概念:class+访问限定符 类的作用域:与函数重载结合 类的实例化:类–>实例化–>对象 对象模型:三个问题 this指针:特性 编译器如何来识别一个类 我们都知道C++有三大特性:封装、继承、多态,之前我总结过继承的知识点,现在来总结一下封装的相关知识!一、什么是封装?封装:隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互,将数据和操作数据的方法进...

2018-08-22 13:13:57 7769

原创 自动化测试的详细介绍

关于自动化测试的概念介绍,我将从以下十个点来介绍! 1.什么是自动化测试 2.常见测自动化测试工具 3.自动化工具和自动化框架的区别 4.自动化测试的适用对象 5.自动化测试方法 6.UI自动化 7.接口自动化 8.如何实施自动化 9.自动化测试的优势 10.自动化实施失败的原因一、什么是自动化测试?自动化测试是指,软件测试的自动化,在预设状态下运行应用程序或者系统,...

2018-08-20 14:21:31 5528

原创 LeetCode--Recover Binary Search Tree(C++)

题目描述: Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure.Note: A solution using O(n) space is pretty straight forward. Could you d...

2018-08-19 20:55:09 149

原创 LeetCode--Validate Binary Search Tree(验证二叉搜索树)C++

题目描述:Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node’s key. ...

2018-08-19 19:36:23 268

原创 C++中的命名空间&&输入输出

一、命名空间1.引入在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突, 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,Namespace关键字的出现就是针对这种问题的。2.定义(1)命名空间的定义namespace Namespace{// 内容}(2)相同的命名空间可以分割在...

2018-08-19 17:30:55 255

原创 C++中指针和引用的区别&&传值、传址、传引用的区别,哪一种高效?

一、概念指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元。引用:引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。举个例子:int a=10;//指针,定义了一个整型变量a和指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。int* p=&a;//引用,一个整形变量a和这个整形a的引用b,事实上a和b...

2018-08-19 16:23:46 1189

原创 C语言和C++的区别与联系(详细)

面向过程和面向对象语言的区别 文件区别:关键字、后缀、返回值、参数列表 重载 C/C++函数调用约定与函数名称修饰规则在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一捋!一、面向过程语言和面向对象语言我们都知道C语言是面向过程语言,而C++是面向对象语言,说C和C++的区别,也就是在比较面向过程和面向对象的区别。1.面向过程和面向对象的区别(1)面向...

2018-08-19 10:47:32 50521 13

原创 LeetCode--same tree(C++)

题目描述:Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.翻译:给定两个二叉...

2018-08-18 11:10:49 121

原创 LeetCode--construct binary tree from inorder and postorder-traversal(根据中序和后序遍历重建二叉树)C++

题目描述:Given inorder and postorder traversal of a tree, construct the binary tree.Note: You may assume that duplicates do not exist in the tree.思路分析:本题要求我们通过二叉树的中序和后序遍历还原这个二叉树,我们知道二叉树的中序遍历的顺序是:左子树–...

2018-08-18 11:00:19 248

原创 LeetCode--Minimum Depth of Binary Tree(C++)

题目描述: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.题目分析:本题我们还是用递归,分为四种情况: (1)左右子树...

2018-08-16 21:19:19 113

原创 LeetCode-- Binary Tree Postorder Traversal(C++)

Given a binary tree, return the Postorder traversal of its nodes’ values. For example:Given binary tree {1,#,2,3},1 \ 2 / 3 return [3,2,1].本题和我之前做过的一个类似的题:Binary Tree Preorder Traver...

2018-08-16 17:54:04 169 1

原创 数组和指针的区别与联系(详细)

指针和数组的区别: 1.概念: 2.存储方式、初始化(指针数组、数组指针)、存储内容(求sizeof) 3.赋值 6.传参(函数指针、函数指针数组、函数指针数组的指针、野指针)一、概念数组:数组是用于储存多个相同类型数据的集合。指针:指针相当于一个变量,但是它和不同变量不一样,它存放的是其它变量在内存中的地址。二、赋值、存储方式、求sizeof、初始化等1.赋...

2018-08-16 14:45:43 52174 10

原创 LeetCode--Binary Tree Preorder Traversal(C++)

题目描述: Given a binary tree, return the preorder traversal of its nodes’ values. For example:Given binary tree {1,#,2,3},1 \ 2 / 3 return [1,2,3].思路分析: 本题是一个二叉树遍历的常规题目。用非递归...

2018-08-14 21:58:32 274

原创 C语言模拟实现strlen、strcpy、strcat、strstr、strcmp、memcpy、memmove

一、strlen函数1.函数介绍strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。 之前我在博客中写过关于数组运算中strlen和sizeof的区别,这里就不再多说了,附上连接:https://blog.csdn.net/...

2018-08-14 20:34:18 164

原创 剑指offer--对称的二叉树(C++)

题目描述:请实现一个二叉树,判断一颗二叉树是否是对称的。注意,一颗二叉树和它的镜像完全相同,则称为对称二叉树。思路分析:要想成为一个对称二叉树,要满足两点:二叉树在结构上必须对称,对称结构的对称位置数据的值相同。本题我们可以使用递归,判断一颗二叉树是否为对称二叉树。代码实现:/*struct TreeNode { int val; struct TreeNode ...

2018-08-14 10:21:35 594 3

原创 浅谈:C/C++中的关键字--static

关键字static在C/C++中应用广泛,其主要有三个作用: (1)修饰变量 (2)修饰函数 (3)修饰数据成员/成员函数 其中前两个是面向过程语言中static的应用,即C语言,后一种是面向对象语言中static的应用,即C++。下面我们一起来学习学习吧!一、修饰变量变量可以分为局部变量和全局变量,但是无论是什么变量,只要被static修饰,它们都存在与全局区(静态区)。...

2018-08-13 17:27:59 147

原创 C/C++程序内存的分配

一、一个C/C++编译的程序占用内存分为以下几个部分:栈区(stack):由编译器自动分配与释放,存放为运行时函数分配的局部变量、函数参数、返回数据、返回地址等。其操作类似于数据结构中的栈。堆区(heap):一般由程序员自动分配,如果程序员没有释放,程序结束时可能有OS回收。其分配类似于链表。全局区(静态区static):存放全局变量、静态数据、常量。程序结束后游戏厅释放。全局区分为已初...

2018-08-13 12:43:57 21508 6

原创 C语言有关数组的运算

在开始之前,我们先来复习一下基础知识:sizeof是一个单目运算符,计算数据类型或变量长度(包括‘\0’);strlen(地址),以’\0’为结束标志计算字符串长度的函数(不包括’\0’);&+数组名,数组名表示整个数组,这里取出的是整个数组的地址 ;sizeof(数组名),数组名表示整个数组,计算的是整个数组的大小,单位是字节 除了以上两种形式表示整个数组之外,其余情况当遇...

2018-08-11 19:03:01 6731 2

原创 平衡二叉树:输入一颗二叉树,判断该二叉树是否是平衡二叉树?(C++)

题目描述:输入一颗二叉树,判断该二叉树是否是平衡二叉树?思路分析:平衡二叉树是指它的左右子树深度相差小于等于1。因此我们需要先求出该二叉树树左右子树的深度,然后看他们的差是否小于等于1代码实现:class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) { if(pRoot==NUL...

2018-08-11 11:02:41 523

原创 剑指offer-二叉搜索树的后序遍历序列(C++)

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路分析:我们首先要知道二叉搜索树的性质(即就是:二叉树搜索树它的左子树都比根节点小,右子树都比根节点大,并且二叉搜索树的中序遍历是有序的)。根据这个思路我们再结合递归,来进行二叉搜索树的后序遍历。还有就是后序遍历的顺序是左子树–>右子...

2018-08-11 10:29:22 565

原创 剑指offer--二叉树的镜像、二叉树的深度

最近,我会将自己写的看到的并且弄懂的题写进我的博客中,下面我们就一起来看看吧!一、二叉树的镜像题目描述:题目:给定二叉树,将其变换为源二叉树的镜像。题目:给定二叉树,将其变换为源二叉树的镜像。二叉树的定义如下:struct TreeNode{int val;TreeNode* left;TreeNode* right;};输入描述:二叉树的镜像...

2018-08-09 19:37:36 153 1

原创 如何测试一个公交卡?(详细)

编写测试用例也是很有讲究的,我们不仅要想到很多方面,并且对每一方面详细的描述出来。

2018-08-08 21:04:19 1887

原创 剑指offer--把二叉树打印成多行(C++)

题目描述:从上到下按层打印二叉树,同一层节点从左往右输出,每一层输出一行。问题分析:这个问题就是二叉树的层序遍历,之前我的博客中曾写到过“锯齿型层序打印二叉树”,和本体思路基本一样,并且本题相对那个题较简单一些,我将那篇博客的连接放在这里:https://blog.csdn.net/cherrydreamsover/article/details/81051663代码实现:/*s...

2018-08-08 20:34:39 301 1

原创 LeetCode--LeetCode:Remove Nth Node From End of List(C++)

题目描述:Given a linked list, remove the nth node from the end of list and return its head.For example,Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the...

2018-08-08 09:22:16 82

原创 LeetCode--add-two-numbers(反序链表求和)C++

题目描述:You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a...

2018-08-07 20:54:57 113

原创 LeetCode--convert-sorted-list-to-binary-search-tree(C++)

题目描述:Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.思路分析:由于给出的单链表是已经排序好的,本题我们只需要找到中间节点,将其标记为树的根,然后分别递归调用左子树和右子树。代码实现如下:/** * Def...

2018-08-07 10:55:39 90

原创 LeetCode--partition-list(C++)

题目描述:Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.You should preserve the original relative order of the nodes in ea...

2018-08-07 10:17:10 290 1

原创 printf函数你不知道的那点事!

在平时的编程中,我们经常使用printf函数进行输出,可以说printf函数真的和我们很熟悉了,但是printf函数也有很多神奇的地方,不知道你知道吗? 下面我们一起来看看吧!一、函数基本介绍printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。函数原型:int printf (...

2018-08-05 11:28:03 1247 1

原创 剑指offer--二叉搜索树与双向链表

题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路:按照本题的意思,我们能想到的就是根据二叉树的中序遍历,因为中序遍历是:左子树–>跟–>右子树,由于二叉搜索树它的根节点大于左子树,小于右子树的,所以,只要我们将跟的左指向它左子树中最大的一个子树,让它跟的右指向右子树中最小的元素,就做到了将二叉搜索...

2018-08-04 19:31:32 107

原创 浅谈:C/C++中for( ; ; )和while(1)的区别

有两种写死循环的方式,即:for(; ;)和while(1),但是这两种哪个效率高呢?其实也说不准,今天我来和大家简单说一下吧!首先要说明的是两者之间的效率高低最重要的还是取决于编译器是否有优化!当编译器对程序不做优化时,两者的效率高低都差不多,编写时看个人喜好和习惯吧!当编译器对程序有优化时,for(; ;)效率更高一点,有如下几个原因: (1)两个“;”都是空语句,因此编...

2018-08-04 14:56:21 3473

原创 C语言有多少关键字?

当被问到C语言中有多少关键字时,很多老铁,都会说32个,但是,其实你说说的不对,因为没有加前提!C语言的32个关键字:(C99版本中,记住要说前提哦,很重要的!!!)1.存储类型关键字(4个)auto:自动存储static:静态存储register:寄存器存储extern:声明一个外部的全局变量2.数据类型关键字(12个)char :字符型变量或函数 (1b...

2018-08-04 14:17:52 3176

原创 用C/C++测试编译器中关键字占多少个字节?

用C语言测试自己编译器所占字节的大小,代码实现如下:#include<stdio.h>#include<climits>#include<float.h>int main(){ int* p; printf("char = %d\n", size

2018-08-04 13:57:18 452

原创 如何对一个水杯进行测试?(详细)

对于水杯的测试我写了如下的测试,用图片展示如下:

2018-08-03 23:19:49 4224

原创 LeetCode--sort list(C++)

题目描述:Sort a linked list in O(n log n) time using constant space complexity. 题目翻译: 在O(nlogn)时间内,使用常数空间对链表进行排序。题目分析:本题让我们对链表进行排序,我们需要用到归并排序的思想。归并排序:就是将数组中的元素分成两个部分,对每一部分进行排序,然后再对整体进行排序。(我在之前的博客中有...

2018-08-03 21:33:39 215

原创 LeetCode--Reorder List(C++)

问题描述:Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes’ values.For example, Given {1,2,3,4}, reorder it to...

2018-08-03 21:10:34 100

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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