입력 범위의 각 요소에 대해 주어진 함수를 적용하여 다른 범위에 저장하는 역할
std::transform(input_begin, input_end, output_begin, unary_op);
단항 연산
- 문자열 소문자로 바꾸기
#include <iostream> #include <vector> #include <algorithm> #include <cctype>
int main() {
std::string str = "Hello, World!";
std::string result;
result.resize(str.size());
// str의 모든 문자를 소문자로 변환하여 result에 저장
std::transform(str.begin(), str.end(), result.begin(), ::tolower);
std::cout << result << std::endl; // 출력: hello, world!
return 0;
}
- 배열에 각 수를 더하기
- 람다 표현 식 사용
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::vector<int> result(vec.size()); // 결과를 저장할 벡터
// vec의 각 요소에 100을 더하여 result에 저장
std::transform(vec.begin(), vec.end(), result.begin(), [](int x) { return x + 100; });
## `std::transform(input1_begin, input1_end, input2_begin, output_begin, binary_op);`
### 이항 함수
- 두 벡터의 합
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec1 = {1, 2, 3, 4};
std::vector<int> vec2 = {10, 20, 30, 40};
std::vector<int> result(vec1.size());
// vec1과 vec2의 각 요소를 더해서 result에 저장
std::transform(vec1.begin(), vec1.end(), vec2.begin(), result.begin(), std::plus<int>());
for (int val : result) {
std::cout << val << " "; // 출력: 11 22 33 44
}
return 0;
}
'Language > C++' 카테고리의 다른 글
[C++] string to / from string (0) | 2024.10.24 |
---|---|
[C++] 형변환 (0) | 2024.10.24 |