C/C++
-
两个有序的int数组,求公共元素集合?
```c void FindArr() { int[] arr1 = {0, 1, 2, 3, 4}; int[] arr2 = {2, 3, 4, 5, 6}; int leng...
-
找出一个数组中的最大三个数
```c int[] FindThreeMaxNum(int[] arr) { if (arr == null || arr.Length
-
写一个54张扑克洗牌的算法
```c void PokerRandom() { int[] pokerArr = new int [54]; for (int i = 0; i < 54; i++) { po...
-
Vector3是值类型还是引用类型?为什么?说一下struct和class区别
值类型,是struct; 值类型效率比class要快; 1、class是引用类型,struct是值类型 2、class可以继承类、接口和被继承,struct只能继承接口,不能被继承...
-
MonoBehaviour中的Update空方法为什么会耗性能?
这里的反射的详细做法是,由Cpp在C#的runtime层面反射出相应的方法,并由Cpp集中管理和调用,识别到了就进行调用; Start 源码:* ```c inline void ...
-
ILCPP为什么会快?
在得到中间语言IL后,使用IL2CPP将他们重新变回C++代码,然后再由各个平台的C++编译器直接编译成能执行的原生汇编代码。
-
UI如何降低DrawCall?
1.动静分离,动态的UI组件独立出Canvas; 2.使用图集,不同UI之间尽量不要重叠,Image与Text不要交叉使用,Text尽量放在所有Image的上面,即Hierarch...
-
Unity协程底层原理?
协程其实就是一个IEnumerator(迭代器),IEnumerator 接口有两个方法 Current 和 MoveNext(), MoveNext()如果返回 true ,就从...
-
AssetBundle资源冗余怎么解决?UnLoad(true)UnLoad(false)的区别;
1.尽量把公共图集,shader,材质等单独出来,打成一个独立的ab包; 2.参数为false时,bundle内的序列化数据将被释放,但是任何从这个bundle中实例化的物体都将完...
-
C#Dictionary ,List的底层实现?
1.Dictionary 数据结构:创建大小为size的数组entries(用来存放字典元素--以下称:entry)创建桶buckets数组记录entry的index(大小和ent...
-
List的Sort是用什么排序实现?复杂度呢?说下原理。
答: 快排。复杂度是O(NlogN),但是它是不稳定排序,最坏的情况是O(n^2), 原理: 1、首先在这个序列中随便找一个数作为基准数; 2、分区过程,将比这个数大的数全放到它的...
-
手写深拷贝(lua或者C#)
```c local function deep_copy(orig) local copy if type(orig) == "table" then copy = {} for...
-
什么是DrawCall,如何减少?
CPU准备数据并通知GPU的过程就称之为一个DrawCall。 如何减少: 1、UGUI使用图集,减少UI的重叠; 2、Text减少使用Shadow和OutLine组件; 3、UI...
-
引用与指针有什么区别?
引用必须被初始化,指针不必。 引用初始化以后不能被改变,指针可以改变所指的对象。 不存在指向空值的引用,但是存在指向空值的指针