언어/Basic C++

[Basic C++] #52_STL 알고리즘, replace

Hardii2 2022. 7. 19. 19:31

[Basic C++] #51_STL 알고리즘, replace

STL 알고리즘 중 "replace 알고리즘"에 대해 알아보겠습니다.

"전문가를 위한 C"의 17 항목, "STL 알고리즘 마스터하기"에 해당하는 내용입니다.

 

 


 

replace()
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
	vector<int> v{ 10, 20, 30, 40, 50 ,60 };
	
   	 // 하한 값은 30, 상한 값은 50으로 Clamping합니다.
	int low = 30;
	int high = 50;

	// replace_if( 원본 범위 첫 번째, 원본 범위 마지막, 프레디킷, 교체할 새로운 값 )
	replace_if(begin(v), end(v), [low](int num) {return num < low; }, low);
	replace_if(begin(v), end(v), [high](int num) {return num > high; }, high);

	for (const auto& val : v) cout << val << " ";
}

* 결과 화면

"replace_if" 알고리즘은 주어진 컨테이너 범위의 항목들을 특정 값 또는 프레디킷 조건에 합치되는 항목을 새로운 값으로 변경합니다.