0

C ++オブジェクトをlibcpp.mapに保存したいのですが、動作させることができません。宣言ファイルでマップを宣言すると、単純な整数でも機能しません。

.pxd file:

from libcpp.map cimport map
cdef class MyClass:
    cdef map[int,int] store


.pyx file:

cdef class MyClass:
    def __cinit__(self):
        self.store = map[int,int]()

次のエラー:

cdef map[int,int] store
          ^
C++ classes not allowed as members of an extension type,
use a pointer or reference instead

なぜこれが機能しないのですか?関数内で宣言すると、正常に機能します。

4

1 に答える 1

2

エラーから、ポインタを格納してヒープ上で新しいバージョンを呼び出す必要があるようです。

cdef map[int,int] *store

self.store = new map[int,int]()
于 2012-06-03T13:23:17.473 に答える