自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实现单例模式

这里我们使用Singletion代表我们将要使用和创建的类。单例模式:只能生成一个类的实例Singletion(单例)模式的类型,由于设计模式在面向对象程序设计中起着举足轻重的作用,在常用的设计模式中单例模式是唯一一个能够用短短几十行代码完整实现的模式。解法一: 只适用于单线程public class Singleton1 { private static Singleton1 instance = null; public static S

2021-05-24 09:15:37 314

原创 C++中用make_shared创建对象和直接定义shared_ptr有什么区别。

class MyClass{public: MyClass(); ~MyClass();private:};MyClass::MyClass(){}MyClass::~MyClass(){}void test_08(){ std::shared_ptr<MyClass> myclass_shared_ptr = std::make_shared<MyClass>(); std::shared_ptr<MyCl

2021-05-22 09:56:49 2721 2

原创 Unity3D中的查找

在学习unity3D的过程中我们经常需要使用代码进行物体的查找,那么该如何查找呢。对于使用查找我们的前提条件是不能查找被隐藏的物体即active属性为false;官方提供如下的几种API:GameObject.FindTransform.FindGameObject.FindWithTagGameObject.FindGameObjectsWithTagResources.FindObjectsOfTypeAll GameObject.Find 可以通过游戏物体的名或者游戏的路径进行查找物

2021-05-22 09:43:48 700

原创 重载中operator++ () 与operator++(int)的区别

在进行侯捷老师的STL源码阅读时碰到了重载函数operator++() 与operator++(int) ,这让我产生比较大的困惑,为什么operator++(int)需要站位参数,有什么区别么?刚开始由于无法区分++与–的前缀调用与后缀调用一直被人诟病,最后C++语言得到了扩展,允许重载++与–;然而语法上确有一个问题,重载函数的区别在于他们参数类型的差异。但不论++与–的前缀和后缀都只有一个参数,C++规定后缀调用需要有一个int型参数作为区分前缀与后缀调用的区别class ListNode {

2021-04-15 11:10:13 1129

原创 数据结构之模板平衡二叉树

想必大家一定会问有了二叉搜索树为啥还要平衡二叉树呢,大家是否想过这样的一个问题,假如我们向一颗二叉树中插入这些1,2,3,4,5,6,7数据这颗二叉树会变成什么呢?答案很明确这颗二叉树虽然有着二叉树但是他视乎变成了一个链表,查找起来依然没有剩下时间,反而让开销更大,为了防止这种情况的产生,使其这颗二叉树依然高效,于是就有了平衡二叉树什么是平衡二叉树:基于二叉排序树左右子树的深度之差的绝对值不超过1左右子树都是平衡二叉树那么在建立树的过程中,我们如何知道左右子树的高度差呢?在这里我们采用了平衡因子进

2021-04-06 20:39:16 197

原创 数据结构之最大堆的实现

堆是重要的数据结构在程序设计中占据着重要的位置,很多设计中都有堆的影子。首先那么什么叫做堆呢?堆的定义:堆(heap)本质上就是一棵完全二叉树,只不过这棵完全二叉树有点特别,能够被称为堆的二叉树,除了它必须要是一棵完全二叉树外,它的每一个结点都必须大于或者小于其子节点。解释一下就是对于树中的所有的结点都至少有一棵子树,对于这个结点的子树上所有的结点都必须要大于或者小于其父节点。因此,堆也是个递归的定义,通常,我们将结点都大于或者等于子树所有结点的堆称为最大堆;将结点都小于或者等于子树所有

2021-04-03 20:46:09 334

原创 C++模板二叉排序树

什么是二叉查找树:根节点的值大于其左子树中任意一个节点的值,小于其右节点中任意一节点的值,这一规则适用于二叉查找树中的每一个节点。以下是实现过程,不知是否有bug,刚写完就给上传到了知乎。以下是代码,看了很多人的总是感觉不是我想要的感觉于是自己写一个。如有错误请指正#pragma once#include"预编译.h"using namespace std;template<typename T>struct TreeNode { T val; TreeNode* le

2021-04-02 20:43:30 176

原创 C++中11的新特性move与右值

C++新特性move函数与右值引用什么是左值什么是右值;左值:指表达式结束后依然存在的持久化对象右值:指表达式结束后就不在存在的临时对象右值引用:绑定到右值的引用,用&&来获得右值的引用,右值引用只能绑定到要销毁的对象,为了与右值引用区别开,常规的引用叫做左值引用;int var= 12;int &_var1 = var;int &&_var2 = var; //错误不能将持久化对象绑定到右值引用上int &&_var3 = var

2021-03-14 21:03:08 160

原创 C++实现最大堆

C++实现最大堆前言:堆是一种数据结构,有着广泛的应用。例如:优先队列堆排序**误解:**很多人都误解堆是一颗二叉树,但是我们只是说堆形如一颗二叉树(平衡二叉树),但堆并没有左右子节点,而是一个数组最大堆的定义:任一结点的关键码均大于等于它的左右孩子的关键码,其中堆顶的元素最大。(任一路径中的元素升序排列)计算公式:当我们已知父节点时:计算孩子节点的位置左孩子节点 = 2父节点+1右孩子节点 = 2父节点+2**已知孩子节点:**计算父节位置时父节点 = (孩子节点-1

2021-03-14 08:51:20 911

原创 剑指offer 07.重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例:前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7]结果3/ 9 20/ 15 7题解:二叉树前序遍历的顺序为:先遍历根节点;随后递归地遍历左子树;最后递归地遍历右子树。二叉树中序遍历的顺序为:先递归地遍历左子树;随后遍历根节点;最后递归地遍历右子树。根据前序遍历和中序遍历我们知

2021-01-24 13:34:50 98

原创 剑指offer之空格替换

剑指offer之空格替换题目描述请实现一个函数,把字符串 s 中的每个空格替换成"%20"示例:输入:s = “We are happy.”输出:“We%20are%20happy.”看到这道题,我们首先应该想到的是原来的空格被替换成 ‘%’,‘2’,‘0’着三个字符,因此字符串会变长,如果在原来的字符串上进行替换,那么就有可能覆盖修改在该字符串后面的内存。如果是创建新的字符串并在上面进行替换,那么我们可以自己分配足够的内存。时间复杂度 O(n^2)的解法:考虑执行替换操作,通常我们会

2021-01-21 20:40:48 129

原创 剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定 tar.

2021-01-19 10:45:08 105

原创 剑指offer之查找数组中重复元素

剑指offer之查找数组中重复元素题目为:找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入: [2, 3, 1, 0, 2, 5, 3]输出:2 或 3class Solution {public: int findRepeatNumber(vector<int>& nums) {

2021-01-15 10:51:28 178

空空如也

空空如也

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

TA关注的人

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