Hàm biến đổi có trong C ++ STL. Để sử dụng nó, chúng ta phải bao gồm tệp tiêu đề thuật toán. Điều này được sử dụng để thực hiện một hoạt động trên tất cả các phần tử. Ví dụ:nếu chúng ta muốn thực hiện bình phương của mỗi phần tử của một mảng và lưu trữ nó vào một mảng khác, thì chúng ta có thể sử dụng hàm biến đổi ().
Chức năng biến đổi hoạt động ở hai chế độ. Các chế độ này là -
- Chế độ hoạt động đơn nguyên
- Chế độ hoạt động nhị phân
Chế độ hoạt động một lần
Trong chế độ này, hàm chỉ nhận một toán tử (hoặc hàm) và chuyển đổi thành đầu ra.
Ví dụ
#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"; } }
Đầu ra
1 4 9 16 25 36 49 64 81 100
Chế độ hoạt động nhị phân
Trong chế độ này, nó có thể thực hiện hoạt động nhị phân trên dữ liệu đã cho. Nếu chúng ta muốn thêm các phần tử của hai mảng khác nhau, thì chúng ta phải sử dụng chế độ toán tử nhị phân.
Ví dụ
#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"; } }
Đầu ra
54 42 96 260 290 444 147 672 180 350