💡 퀵 접속: cpp.kr/for_each
C++ 표준 라이브러리의 알고리즘으로, 주어진 범위의 각 요소에 대해 지정된 함수를 실행합니다. 함수는 단항 함수로 제공되며, 각 요소를 인자로 받아 처리합니다.
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 각 요소를 출력
std::for_each(numbers.begin(), numbers.end(),
[](int n) { std::cout << n << " "; });
std::cout << std::endl;
// 각 요소를 제곱하여 출력
std::for_each(numbers.begin(), numbers.end(),
[](int n) { std::cout << n * n << " "; });
std::cout << std::endl;
return 0;
}
실행 결과:
1 2 3 4 5 1 4 9 16 25
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
int main() {
std::string text = "Hello, World!";
// 각 문자를 대문자로 변환하여 출력
std::for_each(text.begin(), text.end(),
[](char& c) { c = std::toupper(c); });
std::cout << "대문자로 변환: " << text << std::endl;
// 각 문자를 소문자로 변환하여 출력
std::for_each(text.begin(), text.end(),
[](char& c) { c = std::tolower(c); });
std::cout << "소문자로 변환: " << text << std::endl;
return 0;
}
실행 결과:
대문자로 변환: HELLO, WORLD! 소문자로 변환: hello, world!
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
struct Person {
std::string name;
int age;
};
int main() {
std::vector<Person> people = {
{"Alice", 20},
{"Bob", 25},
{"Charlie", 30},
{"David", 35},
{"Eve", 40}
};
// 각 사람의 정보 출력
std::for_each(people.begin(), people.end(),
[](const Person& p) {
std::cout << p.name << " (" << p.age << "세)" << std::endl;
});
// 나이를 1씩 증가
std::for_each(people.begin(), people.end(),
[](Person& p) { p.age++; });
std::cout << "\n나이 증가 후:" << std::endl;
std::for_each(people.begin(), people.end(),
[](const Person& p) {
std::cout << p.name << " (" << p.age << "세)" << std::endl;
});
return 0;
}
실행 결과:
Alice (20세) Bob (25세) Charlie (30세) David (35세) Eve (40세) 나이 증가 후: Alice (21세) Bob (26세) Charlie (31세) David (36세) Eve (41세)
| 함수 | 설명 |
|---|---|
| for_each(first, last, f) | 주어진 범위의 각 요소에 대해 함수 f를 실행 |