Arduino:
सहयोगी अरेज़ का उपयोग करना
कैसे करें:
अर्डुइनो, सख्ती से बोलते हुए, उच्च-स्तरीय भाषाओं में मिलने वाले सहयोजी एरेज के लिए निर्मित समर्थन नहीं रखता। लेकिन, भयभीत न हों। हम इस कार्यक्षमता की नकल करने के लिए संरचनाओं और एरेज का उपयोग करके कुछ चालाक बन सकते हैं। यहाँ अलग-अलग शहरों के लिए तापमान स्टोर करने और एक्सेस करने के लिए एक बुनियादी “सहयोजी एरे” बनाने का एक सरल उदाहरण दिया गया है।
पहले, शहर (की) और इसका तापमान (मूल्य) रखने के लिए एक संरचना की परिभाषा दें:
struct CityTemperature {
String city;
float temperature;
};
फिर, CityTemperature
ऑब्जेक्ट्स का एक एरे आरम्भ करें:
CityTemperature temperatures[] = {
{"New York", 19.5},
{"Los Angeles", 22.0},
{"Chicago", 17.0}
};
यहाँ कैसे आप विशेष शहर का तापमान एक्सेस और दिखा सकते हैं:
void setup() {
Serial.begin(9600);
for(int i = 0; i < 3; i++) {
if(temperatures[i].city == "Los Angeles") {
Serial.print("The temperature in Los Angeles is: ");
Serial.println(temperatures[i].temperature);
}
}
}
void loop() {
// यहाँ फ़िलहाल कुछ नहीं।
}
इस कोड को चलाने से आपको निम्नलिखित आउटपुट मिलेगा:
The temperature in Los Angeles is: 22.0
गहन अध्ययन
पारंपरिक रूप से, सी और सी++ जैसी प्रोग्रामिंग भाषाएँ (जिनसे अर्डुइनो सिंटैक्स निकाला गया है) में सहयोजी एरे नहीं होते थे, जिससे ऊपर दिखाई गई तरह के समाधान करना पड़ता था। यह दृष्टिकोण अपेक्षाकृत सरल है लेकिन डेटा का आकार बढ़ने पर खराब पैमाने पर काम करता है क्योंकि इसका लुकअप समय O(n) होता है।
पाइथन जैसी भाषाएँ डिक्शनरीज़ प्रदान करती हैं, और जावास्क्रिप्ट के पास इस उद्देश्य के लिए ऑब्जेक्ट्स हैं, दोनों ही की-वैल्यू जोड़ों को प्रबंधित करने के लिए कहीं अधिक कुशल हैं। अर्डुइनो में, जब प्रदर्शन और कार्यक्षमता महत्वपूर्ण हो जाती है, तो डेवलपर्स लाइब्रेरीज के माध्यम से लागू हैश टेबल्स जैसी अधिक विशेषज्ञ डेटा संरचनाओं को चुन सकते हैं।
हालांकि अर्डुइनो देशी रूप से सहयोजी एरे का समर्थन नहीं करता है, समुदाय ने HashMap
जैसी लाइब्रेरीज विकसित की हैं जिन्हें आपकी परियोजना में जोड़ा जा सकता है जो घरेलू दृष्टिकोण से बेहतर प्रदर्शन के साथ समान कार्यक्षमता प्रदान करती हैं। ये लाइब्रेरीज आमतौर पर अधिक जटिल परियोजनाओं के लिए सहयोजी एरे का प्रबंधन करने के लिए एक अधिक सुरुचिपूर्ण और कार्यक्षमता प्रदान करती हैं।