摘要:
当需要对一个字符串进行频繁删除、添加操作时,StringBuilder的效率会更高 StringBuilder的数据结构为,在栈中有一个变量名,在堆中开辟一个一定大小的空间,接下来所有的操作均在这个空间内操作,若操作后的大小超出了开辟的空间大小,StringBuilder会自动扩大一倍; Strin 阅读全文
posted @ 2020-11-09 14:13
IcoveJ
阅读(64)
评论(0)
推荐(0)
摘要:
使用try...catch...finally,而不是用判断语句去判断 ex:让用户输入两个数字,用户可能会输入非数字类型,处理该异常,如果出现该异常就让用户重新输入,输出这两个数字的和: 用的C#语言 using System; using System.Collection.Generic; u 阅读全文
posted @ 2020-11-09 14:12
IcoveJ
阅读(103)
评论(0)
推荐(0)
摘要:
所谓接口,即将内部实现细节封装起来,外部用户通过预留的接口可以使用接口的功能而不需要知晓内部的具体细节。以C++为例:通过类实现面向对象的编程,在基类中也只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口,不同派生类的实现接口的方式也不同。ex: //1.类接口的定义:通常在头 阅读全文
posted @ 2020-11-09 14:10
IcoveJ
阅读(584)
评论(0)
推荐(0)
摘要:
1、getline()函数 getline()函数是istream类中的一个成员函数,所以在使用它时,速妖使用istream的对象cin来调用它。 它一共有两种参数形式: (1)cin.getline(Line, size); (获取一行输入) ①.赋值:输入一行字符,被得到后赋给line; ②.如 阅读全文
posted @ 2020-11-09 14:09
IcoveJ
阅读(115)
评论(0)
推荐(0)
摘要:
1、编程的一些知识 在说回调函数之前,先谈谈编程。 什么是编程?就是通过使用编程语言,去实现人与机器间的交流与沟通。随着编程语言的不断进步,编程也逐渐分类,渐渐分为系统编程和应用编程。 系统编程:简单的来说,就是编写各种功能库;应用编程:就是利用各种已写好的库来编写具某种功能的程序,也即应用。 库位 阅读全文
posted @ 2020-11-09 14:08
IcoveJ
阅读(111)
评论(0)
推荐(0)
摘要:
代码来源:《数据结构(c++)》--邓俊辉,并对其做出了一些个人习惯上的修正 一 自建List模板类的接口 //ListNode模板类 #define ListNodePosi(T) ListNode<T>*//列表节点位置 template <typename T> class ListNode{ 阅读全文
posted @ 2020-11-09 14:06
IcoveJ
阅读(187)
评论(0)
推荐(0)
摘要:
代码来源:《数据结构(c++)》--邓俊辉,并对其做出了一些个人习惯上的修正 一 自建Vector模板类的接口 #define Default_Capacity 3//宏定义初始容量,实际情况可以改变 template <typename T> class Vector{ private: int 阅读全文
posted @ 2020-11-09 14:05
IcoveJ
阅读(152)
评论(0)
推荐(0)
摘要:
允许程序中的函数或过程自我调用。以C++为例,递归调用就是指某一方法调用自身。这种调用可以是直接的,在函数体中包含一条或多条调用自身的语句;也可以是间接的,某个方法首先调用其他方法,再通过其他方法相互调用,最终调用自己本身。 使用递归,一定要注意stack overflow。 1.1 线性递归 ”数 阅读全文
posted @ 2020-11-09 14:04
IcoveJ
阅读(179)
评论(0)
推荐(0)
摘要:
堆栈是两种数据结构或者两种内存管理方式 (1)数据结构下的堆栈 ①栈 一种运算受限的线性表,只允许在栈顶(Top)进行元素的进栈(Push)和出栈(Pop),使得 栈中元素拥有了”先进后出“的特性(First In Last Out,FILO)。 栈既然是一种线性结构,就可以通过数组或者链表(单向链 阅读全文
posted @ 2020-11-09 14:03
IcoveJ
阅读(140)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(一) 1 顶点着色器(Vertex Shader) 实现的是用一种通用的编程方式去操作顶点。一般在shader中都会将顶点着色器的参数封装为一个结构体, struct appdata_t{ ...... UNITY_VERTEX_INPUT_INSTANCE_ID 阅读全文
posted @ 2020-11-09 14:01
IcoveJ
阅读(516)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(二) 7 法线变换 有法线就必定有切线,都是模型顶点携带的一种信息。既然如此,那么法线的变换能不能直接使用顶点变换的矩阵呢? 我们先来看切线:切线是两个顶点之间的差值计算得到的,那么由于又不考虑平移变换,就可以直接使用3*3的变换顶点的变换矩阵来变换切线,于是就有: 阅读全文
posted @ 2020-11-09 13:57
IcoveJ
阅读(184)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(三) 前面介绍了渲染流水线,那么这里就详细说说每一部分的编写。 9 顶点/片元着色器 9.1 基本结构 Shader "MyShaderName" { Properties{ //属性 } SubShader{ //针对显卡A的SubShader Pass{ //设 阅读全文
posted @ 2020-11-09 13:56
IcoveJ
阅读(206)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(四) 这里我们将会聊聊Unity中的基础光照及其有关知识 11 Unity中的基础光照 11.1 光源及辐照度 Unity中的光源想必大家都不陌生,所有的光都是从这个光源发射出来的。 在实时渲染中,我们通常将光源视为一个没有体积的点,并用l来表示它的方向。在光学中, 阅读全文
posted @ 2020-11-09 13:55
IcoveJ
阅读(191)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(五) 这里我们会聊聊基础纹理和透明效果的知识。 13 基础纹理 我们用纹理干什么呢?使用它来控制模型的外观,使用的是纹理映射技术来让纹理与模型表面贴住,在逐纹素地控制模型颜色。 在建模时,美术人员会将纹理映射坐标存储在每一个顶点上,它定义了该顶点在纹理中对应的2D坐 阅读全文
posted @ 2020-11-09 13:54
IcoveJ
阅读(207)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(六) 14 透明效果 这一部分我们将聊聊透明效果的知识点 透明是游戏中经常要使用的一种效果。在实时渲染中要实现透明效果,通常会在渲染模型时控制它的透明通道。一旦开启了透明混合后,假如这个物体被渲染到了屏幕上时,每个片元除了颜色值和深度值以外,还有一个属性--透明度。 阅读全文
posted @ 2020-11-09 13:52
IcoveJ
阅读(129)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(七) 15 更复杂的光照 又是光照,只是比之前更复杂了,体现在哪儿呢?需要处理的光源数目更多、类型也更复杂,例如:如何处理光源和聚光灯,如何处理光照的衰减等等,这些都是接下来会聊到的。 15.1 Unity的渲染路径 渲染路径决定了光照是如何应用到UnityShad 阅读全文
posted @ 2020-11-09 13:50
IcoveJ
阅读(303)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(八) 18 屏幕后处理效果 屏幕后处理效果是游戏中实现屏幕特效的常见方法。 18.1 建立一个基本的屏幕后处理脚本系统 屏幕后处理,指的是在渲染玩整个场景得到屏幕图像后,再对这个图象进行一系列操作,实现各种屏幕特效。 通过这种技术,可以为游戏画面添加更多的艺术效果, 阅读全文
posted @ 2020-11-09 13:49
IcoveJ
阅读(291)
评论(0)
推荐(0)
摘要:
Unity-shader学习笔记(九) 20 非真实感渲染 20.1卡通风格的渲染 实现卡通渲染的方法很多,其中之一是使用基于色调的着色技术。在实现中,会使用漫反射系数对一张一维纹理进行采样,以控制漫反射的色调。此外卡通风格通常还需要在物体边缘部分绘制轮廓,这不同于之前的屏幕后处理技术的对屏幕图像的 阅读全文
posted @ 2020-11-09 13:46
IcoveJ
阅读(243)
评论(0)
推荐(0)
摘要:
二叉树 不在邓公所用的头文件下的二叉数实现。 在学习邓公的二叉树的过程中知道了二叉树要么是一棵空树,要么有两个指针,分别指向左右两个子树。而树的问题,大多采用递归来处理。 在这里我选择采用链式存储结构: //二叉树头文件 #pragma once #ifndef BITREE_H_INCLUDED 阅读全文
posted @ 2020-11-09 10:46
IcoveJ
阅读(134)
评论(0)
推荐(0)
摘要:
二叉树--(邓书学习) 在前面我们学到了向量、列表、栈、队列等线性的数据结构,但它们或多或少都有时间或者空间上的妥协,比如数组,我们可以通过下标或秩的方式以常数时间找到目标对象,并进行读取其内容,但要进行删除或者插入时,都需要耗费线性的时间;而链表虽然允许我们借助引用或位置对象,在常数时间内实现删除 阅读全文
posted @ 2020-11-09 10:44
IcoveJ
阅读(218)
评论(0)
推荐(0)
浙公网安备 33010602011771号