У меня есть файл Cython foo.pyx
и соответствующий файл c ++ foo.h
. Внутри foo.h
у меня есть список Foo
объектов с именем Foos
, определенный следующим образом:
std::list<Foo> Foos;
Внутри моего foo.pyx
файла Cython у меня есть итератор, который выполняет итерацию по списку, например:
it = engine.Foos.begin()
while it != engine.Foos.end():
# Do stuff
Проблема, с которой я сталкиваюсь, заключается в том, что я хочу заранее узнать , насколько велика Foos
. В обычном Python я бы просто назвал len(foos)
, однако попытка len(engine.Foos)
или len(it)
здесь просто приводит к тому, что Cython выдает ошибку о невозможности преобразования в объект Python.
Есть ли способ получитьдлина списка объектов c ++ до итерации (примечание; мне НЕ нужно решение, в котором я определяю количество итераций внутри цикла while).