كيف يمكنني إنشاء لوا الجدول في C++ ، ونقله إلى Lua ؟
سؤال
في C++ لدي map<string, string>
, تحتوي على عدد غير معروف من الإدخالات.كيف يمكنني تمرير هذا إلى لوا وظيفة ، بحيث لوا وظيفة يمكن استخدام البيانات في الجدول ؟
المحلول
وإذا كنت ترغب في الجدول لوا الحقيقي:
lua_newtable(L);
int top = lua_gettop(L);
for (std::map::iterator it = mymap.begin(); it != mymap.end(); ++it) {
const char* key = it->first.c_str();
const char* value = it->second.c_str();
lua_pushlstring(L, key, it->first.size());
lua_pushlstring(L, value, it->second.size());
lua_settable(L, top);
}
ومع الحق في أنواع لخريطتك استبداله في ..
نصائح أخرى
عدة خيارات...
نسخ خريطة جديدة لوا الجدول ، وتمرير لوا الجدول.
إنشاء وكيل الجدول أن يوجه يقرأ ويكتب من خلال metatable هو
__index
و__newindex
metamethods
العيب (1) في جميع النسخ ، بالطبع.
العيب أن (2) هو أن pairs()
لن تعمل على الوكيل الجدول
مناقشة إصلاحات لوا ل المعمم pairs
هو في ويكي و هذه القائمة البريدية الموضوع.المعمم pairs
ومن المتوقع لوا 5.2
لا تنتمي إلى StackOverflow