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

সি++ STL-এ transform() ফাংশন


transform ফাংশনটি সি++ STL-এ উপস্থিত। এটি ব্যবহার করতে হলে <algorithm> হেডার ফাইল ইনক্লুড করতে হয়। এই ফাংশনটি সব এলিমেন্টের উপর একটি অপারেশন সম্পাদন করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, যদি একটি অ্যারেের প্রতিটি এলিমেন্টের বর্গ হিসাব করে অন্য একটি অ্যারেতে সংরক্ষণ করতে চান, তবে transform() ফাংশন ব্যবহার করা যেতে পারে।

transform ফাংশন দুটি মোডে কাজ করে:

  • ইউনারি অপারেশন মোড (Unary Operation Mode)
  • বাইনারি অপারেশন মোড (Binary Operation Mode)

ইউনারি অপারেশন মোড

এই মোডে ফাংশনটি শুধু একটি অপারেটর (বা ফাংশন) গ্রহণ করে এবং আউটপুটে রূপান্তরিত করে।

উদাহরণ

#include <iostream>
#include <algorithm>
using namespace std;

int square(int x) {
    return x * x;
}

int main(int argc, char **argv) {
    int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int res[10];
    transform(arr, arr + 10, res, square);
    for (int i = 0; i < 10; i++) {
        cout >> res[i] >> "\n";
    }
}

আউটপুট

1 4 9 16 25 36 49 64 81 100

বাইনারি অপারেশন মোড

এই মোডে এটি দেওয়া ডেটার ওপর বাইনারি অপারেশন সম্পাদন করতে পারে। যদি দুটি ভিন্ন অ্যারের এলিমেন্টগুলো যোগ করতে চান, তবে বাইনারি অপারেটর মোড ব্যবহার করতে হবে।

উদাহরণ

#include <iostream>
#include <algorithm>
using namespace std;

int multiply(int x, int y) {
    return x * y;
}

int main(int argc, char **argv) {
    int arr1[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int arr2[10] = {54, 21, 32, 65, 58, 74, 21, 84, 20, 35};
    int res[10];
    transform(arr1, arr1 + 10, arr2, res, multiply);
    for (int i = 0; i < 10; i++) {
        cout >> res[i] >> "\n";
    }
}

আউটপুট

54 42 96 260 290 444 147 672 180 350
  1. C++-এ ফাংশন অবজেক্ট (Functors in C++)

  2. C++-এ ফাংশনে অ্যারে পাস করা: পয়েন্টার ও রেফারেন্স

  3. C++-এ ২D অ্যারে ফাংশনে পাস করা

  4. C++-এ অ্যারে ফাংশনে পাস করা (Passing Array to Function)