如何迭代(键,值)boost :: python:dict [英] How iterate (key, value) boost::python:dict
本文介绍了如何迭代(键,值)boost :: python:dict的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在 boost :: python:dict 中在 C ++ 中进行迭代?在每个循环中我都需要 key 和 value .
How can I iterate in C++ over my boost::python:dict ? I need key and value in every loop round.
我的尝试是这样的:
for (auto x : MyBoostPythonDict.iteritems())
{
// determine key
// determine value
// ...
}
我收到此错误: C3312找不到类型为'boost :: python :: api :: object'的可调用'end'函数
推荐答案
您可以按如下所示简单地遍历所有键/值对:
You can simply loop over all key/value pairs as follows:
using namespace boost::python;
list items = MyBoostPythonDict.items();
for(ssize_t i = 0; i < len(items); ++i) {
object key = items[i][0];
object value = items[i][1];
// ...
}
现在,您需要从 key
和 value
中提取相应的类型.假设两者均为 int
类型,您将使用:
Now you need to extract the corresponding types from key
and value
. Assuming both are of type int
you would use:
extract<int> key_int(key);
extract<int> value_int(value);
if (key_int.check() && value_int.check()) {
cout << key_int << ": " << value_int << endl;
}
这篇关于如何迭代(键,值)boost :: python:dict的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文