我搜索了很多有关在.NET中在运行时重新加载程序集的内容。我可以找到的唯一方法是使用另一个AppDomain。但这使事情变得非常复杂。就我而言,这几乎是不可能的,因为将在运行时加载的程序集中的类不会继承自MarshalByRefObject。我看过Unity游戏引擎。编辑器在运行时构建组件,仅使用编译的程序集。这怎么可能?
我写了自己的动态数组.它不完整,我已经把它写成了一种做法.但是当我完成add函数时,我想测试我自己的动态数组类的性能,我看到了一些奇怪的结果.我的动态数组比stl的向量快得多.它快了7倍!
这是我的代码:
#include<iostream>
#include<vector>
#include<Windows.h>
using namespace std;
template<class T>
class DynArray
{
public:
DynArray()
{
arr = new T[2];
capacity = 2;
size = 0;
}
void Add(T value)
{
if(size < capacity)
{
arr[size++] = value;
}
else
{
T* tempArr = arr;
arr = new T[capacity*2];
memcpy(arr,tempArr,capacity*sizeof(T));
capacity = capacity*2;
delete[] tempArr;
arr[size++] = value;
}
}
int GetCapacity()
{
return capacity;
}
T operator [] (int index)
{
return arr[index];
}
~DynArray()
{
delete[] arr;
} …Run Code Online (Sandbox Code Playgroud)