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

HC4*_*ica 8 php c++ swig language-binding map

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

在PHP代码中,我需要遍历地图的元素.

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

 clear()
 del($key)
 get($key)
 has_key($key)
 is_empty()
 set($key, $x)
 size()
Run Code Online (Sandbox Code Playgroud)

如何迭代地图元素?我需要的扩展std_map.i文件带有某种包装对迭代器和begin()end()

man*_*moo 1

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

这是 stackoverflow 上的另一个问题。尽管它是java,但它可以让您更好地了解您正在寻找的内容:

将 SWIG 与 C++ 的 std::map 一起使用时,Java 没有迭代器