كيف يمكنني إنشاء لوا الجدول في C++ ، ونقله إلى Lua ؟

StackOverflow https://stackoverflow.com/questions/453769

سؤال

في 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);
}

ومع الحق في أنواع لخريطتك استبداله في ..

نصائح أخرى

عدة خيارات...

  1. نسخ خريطة جديدة لوا الجدول ، وتمرير لوا الجدول.

  2. إنشاء وكيل الجدول أن يوجه يقرأ ويكتب من خلال metatable هو __index و __newindex metamethods

العيب (1) في جميع النسخ ، بالطبع.

العيب أن (2) هو أن pairs() لن تعمل على الوكيل الجدول

مناقشة إصلاحات لوا ل المعمم pairs هو في ويكي و هذه القائمة البريدية الموضوع.المعمم pairs ومن المتوقع لوا 5.2

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top