এসোসিয়েটিভ অ্যারের ব্যবহার

Arduino:
এসোসিয়েটিভ অ্যারের ব্যবহার

কিভাবে:

আর্ডুইনো, কঠোরভাবে বলতে গেলে, উচ্চ স্তরের ভাষাগুলির মতো অ্যাসোসিয়েটিভ অ্যারের জন্য অন্তর্নির্মিত সমর্থন নেই। তবে, ভয় নেই। আমরা কৌশল ব্যবহার করে এই কার্যকারিতা অনুকরণ করতে পারি, কাঠামো এবং অ্যারে ব্যবহার করে। বিভিন্ন শহরের জন্য তাপমাত্রা সংরক্ষণ এবং অ্যাক্সেস করার জন্য একটি বেসিক “অ্যাসোসিয়েটিভ অ্যারে” তৈরি করার একটি সাধারণ উদাহরণ এখানে দেওয়া হল:

প্রথমে, একটি কাঠামো সংজ্ঞায়িত করুন যা শহর (চাবি) এবং তার তাপমাত্রা (মান) ধারণ করবে:

struct CityTemperature {
  String city;
  float temperature;
};

পরবর্তীতে, CityTemperature অবজেক্ট এর একটি অ্যারে আরম্ভ করুন:

CityTemperature temperatures[] = {
  {"নিউ ইয়র্ক", 19.5},
  {"লস অ্যাঞ্জেলেস", 22.0},
  {"শিকাগো", 17.0}
};

এটি কিভাবে একটি নির্দিষ্ট শহরের তাপমাত্রা অ্যাক্সেস ও প্রদর্শন করবেন:

void setup() {
  Serial.begin(9600);
  for(int i = 0; i < 3; i++) {
    if(temperatures[i].city == "লস অ্যাঞ্জেলেস") {
      Serial.print("লস অ্যাঞ্জেলেসের তাপমাত্রা হল: ");
      Serial.println(temperatures[i].temperature);
    }
  }
}

void loop() {
  // এখানে এখন কিছু নেই।
}

এই কোডটি চালালে আপনি আউটপুট পাবেন:

লস অ্যাঞ্জেলেসের তাপমাত্রা হল: 22.0

গভীর ডুব দেওয়া

ঐতিহাসিকভাবে, C এবং C++ এর মতো প্রোগ্রামিং ভাষাগুলি (যেখানে থেকে অ্যারুডোইনো সিনট্যাক্স উদ্ভূত) অন্তর্নির্মিত অ্যাসোসিয়েটিভ অ্যারে সহ আসেনি, যার ফলে উপরে দেখানোর মতো ঘুরপথ নেওয়া হয়েছিল। এই পদ্ধতি যথেষ্ট সাধারণ কিন্তু ডেটা আকার বাড়লে এটি সহজেই স্কেল করে না, কারণ এর O(n) লুকআপ সময় রয়েছে।

পাইথনের মতো ভাষাগুলি ডিকশনারিগুলি প্রদান করে এবং জাভাস্ক্রিপ্টের জন্য অবজেক্ট রয়েছে, উভয়ই কী-মান জোড়া পরিচালনার জন্য অনেক বেশি দক্ষ। অ্যারুডুইনোতে, যখন কর্মক্ষমতা এবং দক্ষতা সমালোচনামূলক হয়ে ওঠে, ডেভেলপাররা সম্ভবত আরও বিশেষায়িত ডেটা কাঠামো, লাইব্রেরিগুলির মাধ্যমে বাস্তুবায়ন করা হ্যাশ টেবিলের মতো, বেছে নিতে পারে।

যদিও অ্যারুডোইনো অন্তর্নির্মিতভাবে অ্যাসোসিয়েটিভ অ্যারে সমর্থন করে না, কমিউনিটি HashMap এর মতো লাইব্রেরিগুলি ডেভেলপ করেছে যা আপনার প্রকল্পে যোগ করা যেতে পারে যা একটি DIY পদ্ধতির চেয়ে উন্নত কর্মক্ষমতা সহ অনুরূপ কার্যকারিতা প্রদান করে। এই লাইব্রেরিগুলি সাধারণত, বিশেষ করে আরও জটিল প্রকল্পের জন্য, অ্যাসোসিয়েটিভ অ্যারেগুলি পরিচালনার একটি আরও মার্জিত এবং দক্ষ উপায় প্রদান করে।