컨테이너의 요소에 대해 지정된 연산을 적용하고, 결과를 저장하는 데 사용되는 알고리즘 함수다.
#include <algorithm>
std::transform(입력_시작, 입력_끝, 결과_시작, 함수_또는_람다);
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::vector<int> result(vec.size());
// 각 요소에 제곱을 적용하여 결과에 저장
std::transform(vec.begin(), vec.end(), result.begin(), [](int x) {
return x * x;
});
// 결과 출력
for (int num : result) {
std::cout << num << " ";
}
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec1 = {1, 2, 3, 4, 5};
std::vector<int> vec2 = {10, 20, 30, 40, 50};
std::vector<int> result(vec1.size());
// vec1과 vec2의 요소를 더하여 result에 저장
std::transform(vec1.begin(), vec1.end(), vec2.begin(), result.begin(), [](int a, int b) {
return a + b;
});
// 결과 출력
for (int num : result) {
std::cout << num << " ";
}
return 0;
}
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype> // std::toupper
int main() {
std::string str = "hello world";
std::string result(str.size(), ' ');
// 각 문자에 대해 std::toupper를 적용하여 결과에 저장
std::transform(str.begin(), str.end(), result.begin(), [](char c) {
return std::toupper(c);
});
// 결과 출력
std::cout << "Original: " << str << "\n";
std::cout << "Transformed: " << result << "\n";
return 0;
}
#include <iostream>
#include <algorithm>
int square(int x) {
return x * x;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int result[5];
// 배열 요소에 대해 square 함수 적용
std::transform(arr, arr + 5, result, square);
// 결과 출력
for (int num : result) {
std::cout << num << " ";
}
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
struct Person {
std::string name;
int age;
};
struct PersonSummary {
std::string name;
int ageCategory;
};
int categorizeAge(int age) {
return (age < 18) ? 1 : (age < 60) ? 2 : 3; // 1: 청소년, 2: 성인, 3: 노인
}
int main() {
std::vector<Person> people = {{"Alice", 25}, {"Bob", 15}, {"Charlie", 65}};
std::vector<PersonSummary> result(people.size());
// 사람의 나이를 카테고리로 변환하여 저장
std::transform(people.begin(), people.end(), result.begin(), [](const Person &p) {
return PersonSummary{p.name, categorizeAge(p.age)};
});
// 결과 출력
for (const auto &summary : result) {
std::cout << "Name: " << summary.name << ", Age Category: " << summary.ageCategory << "\n";
}
return 0;
}