gpt4 book ai didi

python - Cython 获取 C++ 对象列表的长度

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:44 27 4
gpt4 key购买 nike

我有一个 Cython foo.pyx 文件和一个相应的 c++ foo.h 文件。在 foo.h 中,我有一个名为 FoosFoo 对象列表,定义如下:

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 循环内的迭代次数)。

最佳答案

您可以简单地使用 engine.Foos.size()

https://en.cppreference.com/w/cpp/container/list/size

关于python - Cython 获取 C++ 对象列表的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58672459/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com