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

Iterating over std::map in PHP with SWIG

本文关键字:std map 迭代 SWIG PHP 使用      更新时间:2023-10-16

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

在 PHP 代码中,我需要遍历映射的元素。

SWIG 库支持使用 std_map.i 接口文件进行std::map,但仅包装以下方法:

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

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

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

这是关于堆栈溢出的另一个问题。 虽然它是java,但它可以让您更好地了解您正在寻找的内容:

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