在这里尝试获取一个触角,了解访问本机阵列的最佳做法。
具体来说,我想知道的是,当通过浮点数或整数数组的本机指针访问它们时是否涉及任何开销。
我是否可以通过指针算法索引到我的本机数组,或者我应该将整个本机块复制到托管数组而不是访问托管数组?
目前我已经设置了一些东西,以便我的托管类拥有一个本机指针。管理类比通过本机指针检索基础数据。这似乎是合理的,但我不确定幕后可能会出现什么类型的互操作。
我感谢任何意见。
已添加小部件。
来自API:
#define rtArrayItemP(a, pos) (a)->data[(pos) * (a)->width + (a)->element]
我的代码:
template<typename T1, typename T2> public ref class ArrayW
{
internal:
ArrayW(T2* arr)
{
_arr = arr;
}
property T2* Array
{
T2* get()
{
return _arr;
}
}
protected:
T1 getarrayelement(int index)
{
return rtArrayItemP(_arr, index);
}
void setarrayelement(int index, T1 value)
{
rtArrayItemP(_arr, index) = value;
}
T2* _arr;
};