কম্পিউটার টিউটোরিয়াল

C++-এ রেঞ্জ-বেজড ফর লুপ (Range-based for loop) ব্যবহার

C++11-এ আগত range-based for loop কন্টেইনারের সব উপাদান ওয়াকפים থেকে শেষ পর্যন্ত ইটারেট করার সহজ সিনট্যাক্স।

সিনট্যাক্স

for (range-declaration : range-expression) loop-statement
  • range-declaration: উপাদানের টাইপের ভ্যারিয়েবল (প্রায় auto ব্যবহার হয়)।
  • range-expression: কোনো সিকোয়েন্স (অ্যারে, ভেক্টর, ম্যাপ, ব্রেস-ইনিশিয়ালাইজার ইত্যাদি)।
  • loop-statement: লুপ বডি।

ট্রেডিশনাল ফর লুপের সাথে তুলনা

// রেঞ্জ-বেজড
int arr[] = {10,20,30,40,50};
for (int num : arr) cout << num << ", ";

// ট্রেডিশনাল
for (int i=0; i<5; i++) cout << arr[i] << ", ";

সুবিধা

  • সহজ সিনট্যাক্স, সাইজ/ইন্ডেক্স দরকার নেই।
  • auto দিয়ে টাইপ অটো-ডিটেক্ট।
  • কন্ডিশন বা ইনক্রিমেন্ট লিখতে হয় না।

সীমাবদ্ধতা

  • স্পেসিফিক ইন্ডেক্স অ্যাক্সেস বা স্কিপ করা যায় না।
  • রিভার্স ইটারেশন সরাসরি সমর্থিত নয় (Boost লাইব্রেরি লাগে)।

উদাহরণ

#include <iostream>
#include <vector>
#include <map>

int main() {
    int arr[] = {10,20,30,40,50};
    for (int i=0; i<5; i++) printf("%d, ", arr[i]); printf("\n");
    for (int num : arr) printf("%d, ", num); printf("\n");

    char str[] = "Hello World";
    for (char c : str) printf("%c ", c); printf("\n");
    for (char c : "Hello World") printf("%c ", c); printf("\n");

    map<int, char> MAP({{1,'A'},{2,'B'},{3,'C'}});
    for (auto m : MAP) printf("{ %d, %c }", m.first, m.second);
    return 0;
}

আউটপুট:

10, 20, 30, 40, 50,
10, 20, 30, 40, 50,
H e l l o W o r l d
H e l l o W o r l d
{ 1, A }{ 2, B }{ 3, C }
  1. জাভাস্ক্রিপ্টে for...of লুপ ব্যাখ্যা

  2. বাইসেকশন মেথড (Bisection Method) C++ প্রোগ্রাম

  3. C++-এ পিরামিডের ভলিউম বের করার প্রোগ্রাম

  4. C++-এ কুইকসর্ট (QuickSort) প্রোগ্রাম