访问大型本机数组

时间:2013-04-28 18:27:13

标签: c++-cli

在这里尝试获取一个触角,了解访问本机阵列的最佳做法。

具体来说,我想知道的是,当通过浮点数或整数数组的本机指针访问它们时是否涉及任何开销。

我是否可以通过指针算法索引到我的本机数组,或者我应该将整个本机块复制到托管数组而不是访问托管数组?

目前我已经设置了一些东西,以便我的托管类拥有一个本机指针。管理类比通过本机指针检索基础数据。这似乎是合理的,但我不确定幕后可能会出现什么类型的互操作。

我感谢任何意见。

已添加小部件。

来自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;
};

0 个答案:

没有答案