ট্রান্সফর্ম ফাংশন C++ STL-এ উপস্থিত। এটি ব্যবহার করার জন্য, আমাদের অ্যালগরিদম হেডার ফাইল অন্তর্ভুক্ত করতে হবে। এটি সমস্ত উপাদানের উপর একটি অপারেশন করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, যদি আমরা একটি অ্যারের প্রতিটি উপাদানের বর্গক্ষেত্র সম্পাদন করতে চাই এবং এটিকে অন্যটিতে সংরক্ষণ করতে চাই, তাহলে আমরা transform() ফাংশন ব্যবহার করতে পারি।
ট্রান্সফর্ম ফাংশন দুটি মোডে কাজ করে। এই মোডগুলি হল −
- ইউনারি অপারেশন মোড
- বাইনারী অপারেশন মোড
ইউনারি অপারেশন মোড
এই মোডে ফাংশনটি শুধুমাত্র একটি অপারেটর (বা ফাংশন) নেয় এবং আউটপুটে রূপান্তর করে।
উদাহরণ
#include <iostream> #include <algorithm> using namespace std; int square(int x) { //define square function 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) { //define multiplication function 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