যদি আপনার প্রকল্পটি সিএলআই (প্রচলিত ভাষা রানটাইম সমর্থন) হয় , তবে:
আপনি অ্যারে ক্লাসটি ব্যবহার করতে পারেন, আপনি যখন লেখেন তখন যেটি পাবেন তা নয়:
#include <array>
using namespace std;
অন্য কথায়, এসডিডি নেমস্পেসটি ব্যবহার করার সময় এবং অ্যারে শিরোনাম সহ যখন আপনি পরিচালনা না করেন এমন অ্যারে শ্রেণি নয়, স্ট্যান্ডের নেমস্পেসে এবং অ্যারে শিরোনামে নির্ধারিত ব্যবস্থাবিহীন অ্যারে শ্রেণি নয়, তবে সিএলআইয়ের পরিচালিত শ্রেণির অ্যারে রয়েছে।
এই শ্রেণীর সাহায্যে আপনি যে কোনও র্যাঙ্কের একটি অ্যারে তৈরি করতে পারেন।
নীচের নীচের কোডটি 2 টি সারি এবং 3 টি কলাম এবং প্রকার প্রকারের নতুন দুটি মাত্রিক অ্যারে তৈরি করে এবং আমি এর নাম দিয়েছি "আরআর":
array<int, 2>^ arr = gcnew array<int, 2>(2, 3);
এখন আপনি অ্যারেতে উপাদানগুলি নাম দিয়ে এটি অ্যাক্সেস করতে পারবেন এবং কেবল একটি স্কোয়ার প্যারেনেসিস লিখতে পারেন এবং সেগুলির []
ভিতরে সারি এবং কলাম যুক্ত করতে পারেন এবং সেগুলি কমা দিয়ে আলাদা করতে পারেন ,
।
নীচের নীচের কোডগুলিতে আমি ইতিমধ্যে উপরের কোডে ইতিমধ্যে তৈরি অ্যারের প্রথম সারিতে 1 ম কলামে একটি উপাদান অ্যাক্সেস করেছি:
arr[0, 1]
কেবল এই লাইনটি লিখতে হয় সেই ঘরের মানটি পড়া, অর্থাৎ এই কক্ষে মানটি পাওয়া, তবে আপনি যদি সমান =
চিহ্নটি যুক্ত করেন তবে আপনি সেই কক্ষে মান লিখতে চলেছেন, অর্থাৎ এই ঘরে এই মানটি নির্ধারণ করবেন। আপনি কেবলমাত্র সংখ্যার জন্য (=, -,, =, * = এবং / = অপারেটরগুলিও ব্যবহার করতে পারেন (ইনট, ফ্লোট, ডবল, __int16, __int32, __int64 এবং ইত্যাদি), তবে নিশ্চিত যে আপনি এটি ইতিমধ্যে জানেন।
যদি আপনার প্রকল্পটি সিএলআই না হয় , তবে আপনি #include <array>
অবশ্যই, যদি আপনি অবশ্যই অবশ্যই স্টাড নেমস্পেসের পরিচালনাহীন অ্যারে শ্রেণিটি ব্যবহার করতে পারেন তবে সমস্যাটি হ'ল এই অ্যারে বর্গটি সি এল এলির অ্যারে থেকে আলাদা। এই ধরণের অ্যারে তৈরি করুন সি এল এলির মতোই, আপনাকে ^
সাইন এবং gcnew
কীওয়ার্ডটি মুছে ফেলতে হবে । কিন্তু দুর্ভাগ্যবশত দ্বিতীয় int- এ প্যারামিটার <>
প্রথম বন্ধনী নির্দিষ্ট করে দৈর্ঘ্য (অর্থাত আকারের) অ্যারের, না তার র্যাঙ্ক!
এই ধরণের অ্যারেতে র্যাঙ্ক নির্দিষ্ট করার কোনও উপায় নেই, র্যাঙ্কটি কেবলমাত্র সিএলআই অ্যারের বৈশিষ্ট্য । ।
স্ট্যান্ড অ্যারে সি ++ তে সাধারণ অ্যারের মতো আচরণ করে যা আপনি পয়েন্টারের সাথে সংজ্ঞায়িত করেন, উদাহরণস্বরূপ int*
এবং তারপরে: new int[size]
বা পয়েন্টার ছাড়াই: int arr[size]
তবে সি ++ এর সাধারণ অ্যারের বিপরীতে স্ট্যান্ড অ্যারে এমন ফাংশন সরবরাহ করে যা আপনি অ্যারের উপাদানগুলির সাথে ব্যবহার করতে পারেন, যেমন পূরণ, শুরু, শেষ, আকার এবং ইত্যাদি, তবে সাধারণ অ্যারে কিছুই সরবরাহ করে না ।
তবে এখনও স্ট্যান্ডার্ড অ্যারেগুলি সাধারণ সি ++ অ্যারের মতো একটি মাত্রিক অ্যারে are তবে আপনি যে সমাধানগুলি সাধারণ সি ++ এক মাত্রিক অ্যারেটিকে দ্বিমাত্রিক অ্যারে করতে পারেন সে সম্পর্কে অন্যান্য ছেলেরা যে সমাধানগুলি বলেছে সেগুলির জন্য ধন্যবাদ, আমরা একই ধারণাগুলি স্ট্যান্ড অ্যারেতে অভিযোজিত করতে পারি, যেমন মেহেরদাদ আফশারি এর ধারণা অনুসারে, আমরা নিম্নলিখিত কোডটি লিখতে পারি:
array<array<int, 3>, 2> array2d = array<array<int, 3>, 2>();
কোডের এই লাইনটি একটি "জগড অ্যারে" তৈরি করে , যা এমন এক মাত্রিক অ্যারে যা এর প্রতিটি কোষ বা অন্য একটি মাত্রিক অ্যারে নির্দেশ করে।
যদি এক মাত্রিক অ্যারেতে সমস্ত মাত্রিক অ্যারেগুলি তাদের দৈর্ঘ্য / আকারের সমান হয়, তবে আপনি অ্যারে 2 ডি ভেরিয়েবলটিকে বাস্তব দ্বিমাত্রিক অ্যারে হিসাবে ব্যবহার করতে পারেন, এছাড়াও আপনি সারি বা কলামগুলি চিকিত্সার জন্য বিশেষ পদ্ধতিগুলি ব্যবহার করতে পারেন, আপনি এটি কীভাবে দেখেন তার উপর নির্ভর করে 2D অ্যারে মনে মনে, যে স্ট্যান্ড অ্যারে সমর্থন করে।
আপনি কেভিন লোনির সমাধানটিও ব্যবহার করতে পারেন:
int *ary = new int[sizeX*sizeY];
// ary[i][j] is then rewritten as
ary[i*sizeY+j]
তবে আপনি যদি স্টাড অ্যারে ব্যবহার করেন তবে কোডটি অবশ্যই আলাদা দেখতে হবে:
array<int, sizeX*sizeY> ary = array<int, sizeX*sizeY>();
ary.at(i*sizeY+j);
এবং এখনও স্ট্যান্ড অ্যারের অনন্য ফাংশন আছে।
মনে রাখবেন যে আপনি এখনও []
বন্ধনী ব্যবহার করে স্ট্যান্ড অ্যারের উপাদানগুলিতে অ্যাক্সেস করতে পারবেন এবং আপনাকে at
ফাংশনটি কল করতে হবে না । আপনি নতুন ইনট ভেরিয়েবলকে সংজ্ঞায়িত ও নির্ধারণ করতে পারেন যা স্টাড অ্যারেতে উপাদানগুলির মোট সংখ্যা গণনা করে এবং রাখবে এবং তার মানটি পুনরাবৃত্তির পরিবর্তে ব্যবহার করবেsizeX*sizeY
আপনি আপনার নিজস্ব দ্বিমাত্রিক অ্যারে জেনেরিক ক্লাসটি সংজ্ঞায়িত করতে পারেন এবং নতুন দ্বিমাত্রিক অ্যারেতে সারি এবং কলামগুলির সংখ্যা নির্দিষ্ট করতে দুটি পূর্ণসংখ্যা পেতে দুটি মাত্রিক অ্যারে শ্রেণীর নির্ধারককে সংজ্ঞায়িত করতে পারেন এবং দুটি ফাংশনটির পূর্ণসংখ্যার প্রাপ্ত ফাংশনটি সংজ্ঞায়িত করতে পারেন যেটি দ্বিমাত্রিক অ্যারেতে একটি উপাদান অ্যাক্সেস করে এবং এর মান প্রদান করে এবং তিনটি পরামিতি প্রাপ্ত ফাংশন সেট করে, যে দুটি প্রথমে পূর্ণসংখ্যা যা দুটি মাত্রিক অ্যারেতে সারি এবং কলাম নির্দিষ্ট করে এবং তৃতীয় প্যারামিটারটি নতুন মান হয় উপাদান। এর ধরণটি আপনি জেনেরিক শ্রেণিতে যে ধরণের পছন্দ করেছেন তার উপর নির্ভর করে।
আপনি সাধারণ সি ++ অ্যারে (পয়েন্টার বা ছাড়াই) বা এসডি অ্যারে ব্যবহার করে এবং এই সমস্ত কিছু বাস্তবায়িত করতে সক্ষম হবেন এবং অন্যান্য ব্যক্তিদের পরামর্শ দেওয়া একটি ধারণা ব্যবহার করতে পারবেন এবং ক্লায়ারের অ্যারের মতো ব্যবহার করতে সহজ হবে, বা দুটির মতো মাত্রিক অ্যারে যা আপনি সি # তে সংজ্ঞায়িত করতে, বরাদ্দ করতে এবং ব্যবহার করতে পারবেন।