Cython正在获取C++对象列表的长度
Cython getting len of C++ object list
我有一个Cythonfoo.pyx
文件和一个相应的c++foo.h
文件。在foo.h
中,我有一个名为Foos
的Foo
对象列表,定义如下:
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
相关文章:
- C++ 创建包含链表和字符串的对象的链接列表时出错
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- 从封装在对象中的函数 C++ 返回时为空的列表
- 如何在不销毁对象的情况下返回对象列表
- 如何使用Q_PROPERTY公开自定义对象列表
- 链接列表在 cpp 中包含不同的对象类
- 如何使用对象制作分数列表并获得平均值
- 什么更好?返回对象指针列表?或返回指向对象列表的指针?
- 如何将成员函数作为参数传递并在派生对象上执行方法列表
- 我可以从列表中获取对象并复制它们,但如何删除我复制的对象?
- 如何获取列表的每个对象并调用getName方法来打印其名称
- 如何在Windows Media Foundation SDK中指定语言列表对象
- 在 DLL 中嵌入 Python:Py_DECREF列表对象时访问冲突读取位置
- 将类的每个实例添加到列表对象的构造函数
- 列表<对象*>迭代器中的分段错误
- 如何使用list::sort()对STL列表对象进行排序,同时将自定义排序函数作为参数传递给list::排序
- 如何防止客户端修改列表对象
- c++列表对象错误
- 在列表对象中使用对象的派生函数
- 编译器错误 使用列表<对象*的迭代器> C++