
C++
bobo小妞儿~
这个作者很懒,什么都没留下…
展开
-
内存问题-示例
for访问越界1vector<int > num = {1,2,3,4,5};int length = num.size();int max = 5;int index = 0;#define vextorMaxCheck(num, max, cur, index) for(; index < length && cur < max; cur= num[++index])//错误,根本原因是++i和i++的区别,导致的访问越界vextorMaxCheck原创 2020-09-11 09:23:05 · 170 阅读 · 0 评论 -
算法分类及题库(leetcode+剑指offer)
剑指offer题型分类1、深度优先遍历offer34 二叉树总和为某一值得路径offer55-I 二叉树的深度offer55-II 平衡二叉树2、广度优先遍历3、BFS&DFSleetcode103. 蛇形打印二叉树/锯齿形层次遍历1、深度优先遍历offer34 二叉树总和为某一值得路径offer55-I 二叉树的深度offer55-II 平衡二叉树输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。2、广度优先原创 2020-07-10 18:58:20 · 267 阅读 · 0 评论 -
leetcode103. 蛇形打印二叉树/锯齿形层次遍历
BFS层级遍历+蛇形输出思路:1、使用广度优先遍历,将二叉树所有节点存放于一个双端队列中。2、使用分隔符(空节点)将层级分离。3、使用bool控制每一行的输出顺序即可。执行用时:8 ms内存消耗:11.5 MB/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(原创 2020-07-10 18:57:31 · 518 阅读 · 0 评论 -
内存、数据结构中的堆栈
内存中的堆和栈程序在内存中分为以下几个部分:1、栈区:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区:由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 ,分配方式类似于链表。3、全局区全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放4、文字常量区常量字符串就是放在这里的, 程序结束后由系统释放。5、程序代码区存原创 2020-06-29 15:30:08 · 4127 阅读 · 0 评论 -
拷贝构造函数-深cop与浅copy
一、直接初始化与拷贝初始化在一个类对象的定义过程中,对象初始化分为两种:1)、直接初始化, 要求编译器使用普通的函数匹配,选择我们提供的最匹配的 构造函数 ,2)、拷贝初始化, 要求编译器将右侧运算对象拷贝到正在创建的对象中,对象被创建时使用 拷贝构造函数//直接初始化,使用string的构造函数string (size_t n, char c);string dots(10,'s');//直接初始化,使用dots的成员数据,直接初始化sstring s(dots);//使用拷贝赋值运算符,原创 2020-06-29 09:42:30 · 316 阅读 · 0 评论 -
23种设计模式(C++版)
23种设计模式(C++版)总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。代码与说明详见:https://github.com/jest549/DesignPattern.githttps://转载 2020-06-23 09:08:38 · 464 阅读 · 0 评论