C ++ CLI将数组传递给类

时间:2018-05-07 08:24:07

标签: c++-cli

正如标题所说,我必须创建可以接受数组作为参数的类。

这是我当前版本的头文件:

const Utils = {
    isSomeMethod: function (a: INodeType, b: INodeType) {
         // Some logic
    },

    _nodeCheck: function (this: {node: INodeType, nn: INodeType}, n: INodeType) {
        // This as the type specified above and is checked.
        return (n !== this.node && Utils.isSomeMethod(n, this.nn));
    },

    ...
}
let node!: INodeType;
Utils._nodeCheck(node) // not allowed this (aka Utils) is not assignable to {node: INodeType, nn: INodeType}

截至目前,我收到以下错误:

  

'$ S1':全局或静态变量可能没有托管类型   'cli :: array ^'

如果我将我的数组更改为静态,我会得到:

  

“A1”不是“MyClass”类的非静态数据成员或基类

Class必须有两个构造函数。我可以接受带矢量的解决方案,但我遇到的问题几乎相同。

1 个答案:

答案 0 :(得分:1)

这是我在将数组的初始化移动到构造函数时的意思:

import numpy as np
from collections import Counter

ar = np.array([[0,0],[1,1],[2,4],[4,6],[2,2],[3,7],[1,9],[4,16],[5,1],[5,2],[0,0], [20,0]])

repeated = [item for item, count in Counter(ar[:,0]).iteritems() if count > 1]
non_repeated = [item for item in range(len(ar)) if item not in repeated]

new_arr = []
for element in repeated:
    new_arr.append(np.sum(ar[np.where(ar[:,0]==element)],axis=0))
new_arr = np.asanyarray(new_arr)
new_arr[:,0] = new_arr[:,0]/2.
new_arr = ar[non_repeated]