for_each
- 원소를 수정하지 않는 경우 사용(레퍼런스로 원소를 받을 경우 수정 가능하나 권장하지 않음)
- 모든 원소를 순차적으로 접근함을 보장
transform
- 원소를 수정하거나 다른 곳으로 적용할 경우 사용
- 모든 원소가 순차적으로 접근됨을 보장하지 않음
#include <iostream>
#include <algorithm>
using namespace std;
void main()
{
string s = "Hello World!";
// s의 모든 문자를 1씩 증가시켜 s에 다시 저장한다.
transform(s.begin(), s.end(), s.begin(), [](char c) { return ++c; });
// s의 모든 문자를 순서대로 출력한다.
for_each(s.begin(), s.end(), [](char c) { cout << c; });
}
출력
Ifmmp!Xpsme"
'자료구조 & 알고리즘 > 기타' 카테고리의 다른 글
multiset, multimap에서 1개 원소만 삭제 (0) | 2023.02.19 |
---|---|
vector에서 중복 원소 제거 (0) | 2023.02.07 |
유클리드 호제법(Euclidean algorithm) (0) | 2023.02.04 |
std::count 잘 사용하기 (0) | 2023.01.27 |
값의 범위를 제한하는 clamp 구현 (0) | 2023.01.19 |