笔试面试——unity基础篇

加载AssetBundle 主要两种方式,分别是new WWW(url)和WWW.LoadFromCacheOrDownload new WWW是无论什么情况都从指定的URL中下载资源,并加载到内存中 WWW.LoadFromCacheOrDownload是把AssetBundle写入到缓存中,然后在需要加载AssetBundle时,再从缓存中读取AssetBundle,达到一个加速效果,而...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 2

笔试面试——算法篇

排序算法 选择原则:数据量小考虑编程量;数据量大考虑执行时间和存储空间。 按数据量: 大列表:快排,归并,桶排序,基数排序 小列表:冒泡,选择,插入,Shell O(1)< O(log2n)< O(n) < O(nlog2n) < O(n^2) 平均时间复杂度排序:基数< 堆、归并、快排 < shell < 插入、冒泡、选择 冒泡排序 ...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

c#委托与事件

委托 委托是什么 委托怎么用 委托的底层原理 委托 vs 函数指针 为什么委托定义的返回值通常都为void? 事件 事件是什么 事件怎么用 委托 vs 事件(推荐): 自定义事件 .Net Framework的编码规范 委托、事件与Observer设计模式 如何让事件只允许一个客户订阅? 委托 委托是什么 委托本质就是函数的地址,类似c++中的函数指针。 使用委托...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

Lua常用自定义函数

去除字符串首尾的空格 打印table table去重 table的长度 table最大值 将阿拉伯数字转换为语文汉字数字 去除字符串首尾的空格 function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1")) end string1 = " RUNOOB " string2 = tri...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

Lua编码的一些注意事项

交换变量 pairs 和 ipairs区别 取长度操作符’#’ lua实现三目运算符 select变长参数 交换变量 遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以我们可以这样进行交换变量的值: x, y = y, x -- swap 'x' for 'y' a[i], a[j] = a[j], a[i] ...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 4

Lua内存泄露检查

云风的泄漏检查工具 使用弱引用表 待补充 lua中支持垃圾回收机制的对象有五种:string,table,function,full userdata,thread。 他们的引用直接或间接的保存到:lua_state对象,_G全局表,Registry注册表,global_state->mt中。 在脚本中: - 运行的lua脚本本身就是lua_state。 - _G就是_...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

C#与C++互操作

C#调用C++ C#通过PInvoke调用WIN32 API C++、C#基本数据类型的异同 基本值类型的数据封送 字符串的数据封送 指针的数据封送 函数指针的数据封送 结构体的数据封送 完整代码 注意事项 C#通过C++/CLI调用C++的DLL C++调用C#. C++中通过C++/CLI调用.NET编写的DLL 托管代码和非托管代码的交互技术有3种:平台调用(PIn...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 5

关于SGI STL中的容器的简介

关于SGI STL中的容器的简介 SGI STL主要含有两类容器:序列式容器和关联式容器。 序列式容器(Sequence Container) 标准:array(build-in), vector, heap, priority-queue; 非标准: list, slist, deque; 配接器:stack, queue。 1. vector 单向开口连续线性动态空间,一般...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 3

STL中的两类元素删除操作

STL中的两类元素删除操作 主要参考侯捷老师的《STL源码剖析》。 通常在STL中的删除操作有以下两种: - erase() 函数; - remove() 函数; 在介绍这两个函数前还需要介绍以下全局函数copy()和destory(): copy()函数经常被调用,为此,SGI STL的copy算法用尽各种办法包括函数重载,型别特性,偏特化等技巧来加强效率。copy()的函数...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

c++中使用空指针调用成员函数的理解

使用空指针调用成员函数会如何? 举个例子:base是基类,里面有两个函数:non-virtual func2 以及 virtual func1; derived是派生类,使用public继承自base,里面有四个函数:virtual func1,non-virtual func3,non-virtual func4以及static non-virtual func5,特别注意:func4调用了...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

设计模式原则和分类

设计模式原则和分类 从今天开始学习设计模式,主要参考博览网的C++设计模式教程。 设计模式原则 1.依赖倒置原则(DIP,Dependence Inversion Principle ) - 高层次的模块(稳定)不应该依赖于低层次的模块(变化),二者都应该依赖于抽象。 - 抽象(稳定)不应该依赖于实现细节,实现细节应该依赖于抽象。 我从c++的角度来理解:高层次的模块指基类,低层次的模块是指派生类,基类不应该依赖于派生类;抽象是指基类中的接口,基类派生类都应该依赖于接口,实现细节是指接口的具体
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

返回结果的HTTP状态码。

返回结果的HTTP状态码 HTTP状态码表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。 状态码类别 1xx 信息性状态码 表示接收的请求正在处理 2xx 成功状态码 表示请求正常处理完毕 3xx 重定向状态码 表示需要进行附加操作以完成请求 4xx 客户端错误状态码 表示服务器无法处理请求 5xx 服务端错误状态码 表示服务器...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

《深度探索C++对象模型》读书笔记第四章:Function语意学

一.Nonstatic Member Functions(非静态成员函数) 准则:非静态成员函数至少和一般的非成员函数有相同的效率。编译器内部已经将成员函数转换为非成员函数。 转换分为三个部分: - 1.添加this指针为函数的第一个参数,如果成员函数是const, 那么this指针的类型为: const className * const this;并且对每一个nonstatic da...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

《effective c++》读书笔记之 让自己习惯c++

Accustoming Youself to C++ 条款1.视c++为一个语言联邦 C++是个多重范型编程语言,同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式。视c++为一个语言联邦,包括以下四个部分: C. C++说到底还是以C为基础。这是面向过程的部分,C与C++相比,少了模板、异常以及重载。 Object-Oriented. 面向对象部分,包括封装、继承、多态以及虚...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

《深度探索C++对象模型》读书笔记第一章:关于对象

《深度探索C++对象模型》读书笔记之 关于对象 前言 c语言中,“数据”和“处理数据的操作(函数)” 是分开声明的,将这种程序方法称为程序性(procedural),比如声明一个struct Point3d: struct Point3d { float x; float y; folat z; }; 而操作该数据数据的函数例如打印函数,只能另外定义成: vo...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

斐波那契数列及其对数时间算法

斐波那契数列及其对数时间算法 前些天做IEEE校内算法赛的时候,遇到了一道关于斐波那契数列的题,要求是对数时间;今天在牛课网上刷leetcode,看到爬楼梯问题,于是在网上搜索了一下,自己参考并总结了下斐波那契数列及其算法。主要参考了知乎这个问题下的回答最高赞回答。 斐波那契数列大家应该都很熟悉:0 1 1 2 3 5 8… ,递推公式如下: f(n)={f(n−1)+f(n−2)if2≤n...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 2

《深度探索C++对象模型》读书笔记第二章:构造函数语义学

《深度探索C++对象模型》读书笔记之 构造函数语义学 编译器背着程序员做了很多事,explicit关键字的导入,是为了制止“单一参数的constructor”被当作一个conversion运算符。这一章中,挖掘了编译器对于“对象构造过程”的干涉,以及对于“程序形式”和“程序效率”的冲击。 一.Defalut Constructor的构造过程 关键:是编译器需要(就会合成默认构造函数)...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

《深度探索C++对象模型》读书笔记第五章:构造析构拷贝语意学

《深度探索C++对象模型》读书笔记第五章:构造析构拷贝语意学 对于abstract base class(抽象基类),class中的data member应该被初始化,并且只在constructor中或者在其他member functions中指定初值。 纯虚函数的存在 纯虚函数,虚函数在声明后加上 = 0,纯虚函数的意义在于只定义一个可继承的接口,并没有实现(虚函数意义在于定义一个可继...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

《深度探索C++对象模型》读书笔记第六章:执行期语意学

《深度探索C++对象模型》读书笔记第六章:执行期语意学 C++在执行期的一些变化,例如临时对象的产生,临时对象的构造和析构成本是我们需要考虑的,我们将在第三节具体讲解。 一.对象的构造和析构 一般而言,我们将object尽可能放置在使用它的那个程序区段附近,这样可以节省非必要的对象的构造和析构成本。 全局对象 已经初始化全局对象均存储在data segment(数据段),未初始化...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 1

Qt工作笔记-使用QGraphicsItem加载图片并实现碰撞

因为要做一个游戏,在线只是一个知识点例子,作下笔记而已。只给出伪代码,游戏作玩,开源发布!!!这里有2个知识点一个是QGraphicsItem的绘图。一个是QGraphicsItem的碰撞。实现绘图要重写:boundingRect()和paint();一定要保证所有的绘图都要在boundingRect()的边界之中。本次绘图代码如下:QRectF Graphic::boundingRect()co...
分类: 其他 发布时间: 05-29 23:47 阅读次数: 2