Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แปลง () ใน C ++


ฟังก์ชันการแปลงมีอยู่ใน C++ STL ในการใช้งาน เราต้องรวมไฟล์ส่วนหัวของอัลกอริทึม ใช้สำหรับดำเนินการกับองค์ประกอบทั้งหมด ตัวอย่างเช่น หากเราต้องการสร้างสี่เหลี่ยมจัตุรัสของแต่ละองค์ประกอบของอาร์เรย์ และเก็บไว้ในองค์ประกอบอื่น เราก็สามารถใช้ฟังก์ชัน transform() ได้

ฟังก์ชันการแปลงทำงานในสองโหมด โหมดเหล่านี้คือ −

  • โหมดการทำงานแบบ Unary
  • โหมดการทำงานแบบไบนารี

โหมดการทำงานแบบ Unary

ในโหมดนี้ ฟังก์ชันจะใช้โอเปอเรเตอร์ (หรือฟังก์ชัน) เพียงตัวเดียวและแปลงเป็นเอาต์พุต

ตัวอย่าง

#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