自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 锻练编程思维——每日一题:《剑指offer》二叉树的下一个结点

题目描述 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 题目所给代码框架: /* struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struct TreeLinkNode *next; TreeLinkNode(int x) :val(x), lef

2020-06-10 20:22:34 104

原创 锻练编程思维——每日一题:《剑指offer》二叉树的深度

题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 题目所给代码 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: int TreeDe

2020-06-08 18:25:33 119

原创 锻练编程思维——每日一题:《剑指offer》求1+2+3+。。。+n

目录题目描述题目分析题解代码 题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 题目所给代码: class Solution { public: int Sum_Solution(int n) { } }; 题目分析 在计算机里,求1+2+3+…+n得求1+2+3+…+n-1, 求1+2+3+…+n-1得求1+2+3+…+n-2, 求1+2+3+…+n-2得求1+2+3+

2020-06-06 18:11:52 165

原创 EssentialC++第七章总结+课后习题+踩雷清单(最后一期,至此EssentialC++完结!)

总结 这一章讲了异常处理。 首先你得有个抛出异常,用throw表达式,可以throw整数、字符串、异常类类对象,可以定义异常类 然后需要捕获异常,用catch子句,catch{//…}异常对象的类型是会和捕获并处理异常的catch子句比对的,看哪个catch子句能处理这种类型的异常对象,catch子句可以重新抛出异常交由其他catch子句处理,就在catch子句最后写个throw;就行。 捕获任何类型异常,写catch(…){//…} 然后讲了提炼异常,介绍try块,try{//…}和catch子句搭配,

2020-06-06 13:36:47 372

原创 Essential C++学习记录&笔记整理45(局部资源管理、标准异常)

目录局部资源管理auto_ptr标准异常解析new表达式的具体工作过程bad_alloc异常类自己编写异常类并将其继承于exception之下ostringstream类istringstream类 局部资源管理 函数执行之初所分配的资源不一定最终会被释放掉。 比如某函数里使用了new表达式从堆内存里分配空间给一个对象, 然后把对象地址分配给一个指针。 假如这个操作执行完以后,在释放资源的语句之前这个函数或这个函数内调用的函数抛出了异常, 而且没在这个函数里解决, 那么释放资源的语句不会被执行,这就极其危

2020-06-05 19:00:09 407

原创 Essential C++学习记录&笔记整理44(提炼异常(try块))

目录提炼异常try块介绍try块对异常处理机制的作用(有了try块异常处理机制该怎么办)初学C++在异常处理上犯的错误 提炼异常 try块介绍 try块以关键字try作为开始,然后{},catch子句放在{}之后。据给自: bool has_elem(Triangular_iterator first,Triangular_iterator last,int elem) { bool status=true; try { while(first!=last) { if(*first=

2020-06-05 14:05:13 187

原创 Essential C++学习记录&笔记整理43(抛出异常、捕获异常)

到了第七章,异常处理,最后一章,内容比较少,坚持看完,坚持记笔记,奥力给! 目录抛出异常介绍异常及其处理异常对象和异常类及异常类的用法捕获异常catch子句 抛出异常 介绍异常及其处理 异常处理机制两个主要成分:①异常的坚定与发出,②异常的处理方式 异常产生及处理都可能发生在函数上 异常出现之后,程序的执行便被暂停。同时异常处理机制搜索程序中有能力处理这一异常的地点。 异常处理完毕,程序继续在异常处理点接着执行 C++通过throw表达式产生异常。举个例子: inline void Triangular

2020-06-04 23:46:14 224

原创 锻练编程思维——每日一题:《剑指offer》删除链表中重复的结点

题目描述 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 题目所给代码框架: /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ c

2020-06-04 15:36:05 119

原创 EssentialC++第六章总结+课后习题+踩雷清单

总结 讲了模板类,这是在原基础上把对象类型抽离出来,变成template<typename 占位符>这种形式。 然后怎么定义模板类,模板成员函数,和定义一般模板函数大同小异,抽离出来类型就可以,注意别忘把类型抽离出来,然后注意不该改成模板类型的别改成模板类型(比如大小、长度,这只能是整数,名字,这只能是string型) 关于模板样式的形参,写这样的形式:const 模板类型名& 形参名,因为模板类型也许是内置类型也许是class类型,这样的格式避免复制所带来巨大的开销,使程序效率降低。

2020-06-03 17:09:05 302

原创 锻练编程思维——每日一题:《剑指offer》二叉树的镜像

题目描述 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 题目给的代码框架: /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void Mirror(TreeNode *pRoot) { } }

2020-06-03 09:22:15 126

原创 Essential C++学习记录&笔记整理42(以模板参数作为一种设计策略、成员模板函数)

目录以模板参数作为一种设计策略成员模板函数非模板类里定义成员模板函数模板类里定义成员模板函数 以模板参数作为一种设计策略 讲的什么呢,就是将某种特定的命名规范强加于被当作参数的类身上:每个类都必须提供某模板类中调用到的函数。这样的独特设计很高级,说明模板类的类型参数不光可用以传递元素类型,还可以传递class类型。举个例子: template<typename num_seq> class NumericSequence{ public: NumericSequence(int len=1,i

2020-06-02 20:24:26 235

原创 Essential C++学习记录&笔记整理41(一个以模板函数完成的输出运算符、常量表达式与默认参数值)

目录一个以模板函数完成的输出(<<)运算符常量表达式与默认参数值模板参数默认值全局作用域内的函数及对象用于模板类 一个以模板函数完成的输出(<<)运算符 非模板函数形式的重载运算符函数是这样(声明) ostream& operator<<(ostream&,const BinaryTree<int>&); 而模板函数形式的重载运算符函数是这样(定义) template <typename elemType> inline

2020-06-02 19:42:11 293

原创 Essential C++学习记录&笔记整理40(实现一个模板类)

关于new表达式 new表达式可分解为两个操作: ①向程序的空闲空间请求内存,若分配到足够空间,则返回指针,指向新对象;若未分配到足够空间,则抛出异常bad_alloc(异常处理) ②如果new 类型名(初值),则该新对象被初始化。 举个class类型的例子: _root = new BTnode<elemType>(elem); 其中elem被传入BTnode模板类的类构造函数。分配内存失败,初始化操作(类构造函数操作)不会发生。 模板类成员函数的定义/声明实战: 举几个例子吧,主要为了

2020-06-02 17:35:03 221

原创 锻练编程思维——每日一题:《剑指offer》斐波那契数列

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。 n<=39 题目给出的代码框架: class Solution { public: int Fibonacci(int n) { } }; 题目分析 不可用递归算法,时间复杂度O(2的n次方)非常大,不会通过的 非递归算法(循环算法最简单),思路如下 斐波那契数列求值采用自底向上(循环)的方式,已知前两项的值(a做+的右侧值,b做+的左侧值,继而1+1=

2020-06-02 15:48:30 202

原创 锻练编程思维——每日一题:《剑指offer》链表中环的入口结点

题目描述 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 题目给出的代码框架 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead)

2020-06-01 20:26:00 151

空空如也

空空如也

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

TA关注的人

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