replace 함수는 <algorithm>
에 포함되어 있다. 보통 for 문으로 반복문을 돌면서 if 문으로 조건에 맞으면 변경하는 작업을 해도 되지만,
replace 함수를 쓰면 한줄로 표현이 가능하다.
replace
replace(first, last, const T& old, const T& new)
#first
와last
는 원소 범위 iterator
#old
는 치환 대상,new
는 치환할 새로운 값
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 2, 3, 3, 3};
replace(v.begin(),v.end(), 2, 4); // v에 있는 모든 '2'를 '4'로 변경
return 0;
}
replace_if
replace_if(first,last,Pred p, cont T& new)
#p
는 치환할 원소를 전달할시에true
를 반환하는 함수 (bool로 변환 가능한 참 거짓 값)
#p
는 전달받은 원소를 변경하면 안되므로const&
나 값 형태로 받을 것
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 2, 3, 3, 3};
replace_if(v.begin(),v.end(),[](const int& i){return i <=2;} , 4);
// v에 있는 `2'보다 작거나 같은 수를 '4'로 변경
return 0;