2012-05-14 7 views
8

Я использую SWIG для обертывания функции, которая возвращает std::map в PHP.Итерация над std :: map в PHP с помощью SWIG

В 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()?

+0

вызов принят. «Правильная» вещь - реализовать интерфейс [итератор] PHP (http://php.net/manual/en/class.iterator.php), но похоже, что это может быть немного сложно. Я подумаю – Flexo

ответ

1

Как @awoodland сказал, что вам нужно будет реализовать интерфейс итератора.

Вот еще вопрос о stackoverflow. Несмотря на то, что Java может дать вам лучшее представление о том, что вы ищете:

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