কম্পিউটার

C++ এ 1-d অ্যারে ব্যবহার করে একটি 2-d অ্যারে অনুকরণ করা


এই সমস্যায়, আমরা 2-ডি অ্যারেকে 1-ডি অ্যারেতে রূপান্তর বুঝতে পারব। আমরা দেখব কিভাবে 2-ডি অ্যারের উপাদানগুলিকে 1-ডি অ্যারেতে সংরক্ষণ করা যায়।

এখানে, 1-ডি অ্যারের আকার 2-ডি অ্যারের মোট উপাদানের সংখ্যার সমান যা n*m।

প্রোগ্রামিংয়ে 2-ডি অ্যারে থেকে 1-ডি অ্যারে সংরক্ষণ করার দুটি উপায় রয়েছে। তারা হল-

  • রো মেজর
  • কলাম মেজর

সারি মেজর: সারি মেজরে, একটি সারির সমস্ত উপাদান একসাথে সংরক্ষণ করা হয় তারপর এটি পরবর্তী সারিতে চলে যায়।

nXm আকারের 2-D অ্যারের একটি উপাদানের একটি সূচক (i, j) 1-D অ্যারেতে সংরক্ষণ করা হলে, 1-D অ্যারেতে এর সূচকটি হল

(j) + (i)*m

কলাম প্রধান: প্রধান কলামে, একটি কলামের সমস্ত উপাদান একসাথে সংরক্ষণ করা হয় তারপর পরবর্তী কলামটি অতিক্রম করা হয়।

nXm আকারের 2-D অ্যারের একটি উপাদানের একটি সূচক (i, j) 1-D অ্যারেতে সংরক্ষণ করা হলে, 1-D অ্যারেতে এর সূচকটি হল

(i) + (j)*n

সমস্যা বোঝার জন্য একটি উদাহরণ দেখি,

ইনপুট: n =3, m =5, (i,j) =(0, 2)

আউটপুট: row-major =
column-major =

ব্যাখ্যা:

রো-মেজর =2 + 0*3 =3
Col-major =0 + 2*5 =10

2-D থেকে 1-D রূপান্তর চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include<iostream>
using namespace std;

int main() {

int n = 3;
int m = 5;
   int grid[n][m] = {{1, 2, 3},
                {4, 5, 6},
                {7, 8, 9},
    {10, 11, 12},
    {13, 14, 15}};
   int i = 0;
   int j = 2;
   int rowMajorIndex = i*n + j;
   cout<<"Index of element at index (0, 2) in 1-D array using row-major is "<<rowMajorIndex<<endl;
   int colMajorIndex = i + j*m;
   cout<<"Index of element at index (0, 2) in 1-D array using column-major is "<<colMajorIndex<<endl;
   return 0;
}

আউটপুট −

Index of element at index (0, 2) in 1-D array using row-major is 2
Index of element at index (0, 2) in 1-D array using column-major is 10

  1. আমি কিভাবে নতুন ব্যবহার করে C++ এ একটি 2d ​​অ্যারে ঘোষণা করব

  2. অ্যারে ব্যবহার করে সারি বাস্তবায়নের জন্য C++ প্রোগ্রাম

  3. অ্যারে ব্যবহার করে স্ট্যাক বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. আমি কিভাবে নতুন ব্যবহার করে C++ এ একটি দ্বি-মাত্রিক অ্যারে ঘোষণা করব?