सी ++ में, मेरे पास map<string, string>
है, जिसमें अज्ञात संख्या में प्रविष्टियां हैं। मैं इसे लुआ फ़ंक्शन में कैसे पास कर सकता हूं, ताकि लुआ फ़ंक्शन डेटा को तालिका के रूप में उपयोग कर सके?मैं सी ++ में लूआ टेबल कैसे बना सकता हूं, और इसे लुआ फ़ंक्शन में पास कर सकता हूं?
9
A
उत्तर
18
की उम्मीद है, तो आप एक असली lua तालिका हैं:
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);
}
में प्रतिस्थापित अपने नक्शे के लिए सही प्रकार के साथ
..
5
एक जोड़े विकल्प ...
कॉपी एक नया लुआ तालिका में नक्शा, और लुआ तालिका गुजरती हैं।
एक proxy table कि पढ़ता निर्देशन और एक metatable के
__index
और__newindex
metamethods
(1) है सब नकल करने के लिए दोष के माध्यम से लिखते हैं, निश्चित रूप से बनाएँ।
दोष करने के लिए (2) कि pairs()
प्रॉक्सी तालिका
सामान्यीकृत pairs
के लिए लुआ को ठीक करता है, इसकी चर्चा in the wiki और this mailing list thread है पर काम नहीं करेगा है। सामान्यीकृत pairs
के लिए Lua 5.2
संबंधित मुद्दे
- 1. पास सी ++ ऑब्जेक्ट लूआ फ़ंक्शन
- 2. मैं लुआ स्क्रिप्ट को अपरिवर्तनीय कैसे बना सकता हूं?
- 3. मैं लुआ में 2 डी सरणी कैसे बना सकता हूं?
- 4. मैं लुआ में एक टेबल कैसे बना सकता हूं, फिर सी एपीआई से मूल्य जोड़ सकता हूं?
- 5. क्या मैं .config फ़ाइल बना सकता हूं और इसे web.config में शामिल कर सकता हूं?
- 6. मैं इस फ़ंक्शन में पैरामीटर कैसे पास कर सकता हूं?
- 7. मैं जावा में हैश टेबल कैसे बना सकता हूं?
- 8. मैं "कस्टम प्रोटोकॉल" कैसे बना सकता हूं और इसे किसी एप्लिकेशन पर मैप कर सकता हूं?
- 9. मैं अपना खुद का हायर कैस्केड कैसे बना सकता हूं और इसे लागू कर सकता हूं?
- 10. मैं केकेपीएचपी में सत्र डेटा कैसे बना सकता हूं, लिख सकता हूं और पढ़ सकता हूं?
- 11. मैं फॉगबगज़ को ईमेल कैसे भेज सकता हूं और इसे एक बग में बना सकता हूं?
- 12. लुआ के लिए एक सी पुस्तकालय लपेटना: मैं कार्यों की नेस्टेड टेबल कैसे बना सकता हूं?
- 13. मैं रूबी को लुआ में कैसे बदल सकता हूं?
- 14. मैं सी # में एसक्यूएल फ़ंक्शन कैसे कॉल कर सकता हूं?
- 15. किसी अन्य लुआ फ़ाइल से लोड करते समय मैं लूआ फ़ाइल में पैरामीटर कैसे पास कर सकता हूं?
- 16. मैं जावा में लुआ कैसे एम्बेड कर सकता हूं?
- 17. मैं लुआ से सी ++ में एक टेबल कैसे पास करूं?
- 18. सबवर्जन: क्या मैं चेकआउट कर सकता हूं, संशोधित कर सकता हूं, और फिर इसे शाखा बना सकता हूं?
- 19. मैं स्कैला में करीबी अज्ञात फ़ंक्शन कैसे बना सकता हूं?
- 20. मैं MATLAB में "खाली" अज्ञात फ़ंक्शन कैसे बना सकता हूं?
- 21. मैं सी # में किसी फ़ंक्शन में कोई ईवेंट कैसे पास कर सकता हूं?
- 22. मैं php में साइट कैसे बना सकता हूं और इसे एक स्थिर संस्करण उत्पन्न कर सकता हूं?
- 23. मैं ग्रोवी में वैश्विक चर कैसे बना सकता हूं और एक्सेस कर सकता हूं?
- 24. मैं एक्सएसडी फाइलों से डेटाबेस टेबल कैसे बना सकता हूं?
- 25. पोस्टग्रेस्क्ल में: मैं एक साधारण काउंटर कैसे बना सकता हूं जिसे मैं रीसेट कर सकता हूं?
- 26. मैं सी # में पॉइंटर जेनेरिक कैसे बना सकता हूं?
- 27. मैं सी में पाइथन कक्षा कैसे बना सकता हूं?
- 28. मैं एसवीएन में कैसे शाखा कर सकता हूं और इसे अपने svn: बाहरी फ़ोल्डरों को भी शाखा बना सकता हूं?
- 29. मैं एक आईफोन ढांचा कैसे बना सकता हूं और इसे अन्य आईफोन अनुप्रयोगों में उपयोग कर सकता हूं
- 30. मैं सी # में एक संदेश बॉक्स कैसे बना सकता हूं?
यह बहुत मुश्किल पुनरावर्तक जोड़ने के लिए नहीं होना चाहिए मेटाटेबल को फ़ंक्शन करें जो टेबल के लिए जोड़े() की तरह उपयोग किया जा सकता है। –
मैं आमतौर पर विकल्प 2 करता हूं; जब तक कि तालिका छोटी न हो और अधिकतर पढ़ने-योग्य तालिका में बहुत सारे अनुरोध हों। – Javier