使用SWIG迭代PHP中的std :: map

时间:2012-05-14 03:00:58

标签: php c++ map swig language-binding

我正在使用SWIG来包装一个在PHP中返回std::map的函数。

在PHP代码中,我需要迭代地图的元素。

Thw SWIG库通过std::map接口文件为std_map.i提供支持,但只包含以下方法:

 clear()
 del($key)
 get($key)
 has_key($key)
 is_empty()
 set($key, $x)
 size()

如何迭代地图元素?我是否需要使用迭代器和std_map.i以及begin()的某种包装来扩展end()文件?

1 个答案:

答案 0 :(得分:1)

正如@awoodland所说,你必须实现迭代器接口。

这是关于stackoverflow的另一个问题。虽然它是java,它可以让你更好地了解你在寻找什么:

No iterator for Java when using SWIG with C++'s std::map