본문 바로가기
Etc

[정리] 6장 알고리즘 라이브러리 간단 정리

by woohyeon 2019. 11. 11.
반응형

<numeric>

std::accumulate(b, e, t)
: [b, e) 범위의 각 요소들의 합에 t를 더하여 반환합니다.
t값으로 요소에 대한 항등원을 주게되면 순수한 누적합을 구합니다.
ex) 요소가 int type일 경우 t 값으로 0을 주면 [b, e) 범위의 요소들의 합을 반환합니다.
위 함수는 다음과 같이 동작합니다.

temp = t;
while(b!=e)
{
  temp = temp + *b;
  ++b;
}
return temp;
  

 
<algorithm>

std::find(b, e, t)
std::find_if(b, e, p)
std::search(b, e, b2, e2)

: [b, e) 범위에서 주어진 값을 찾는 알고리즘입니다.
find 함수는 t 값을 찾습니다.
find_if 함수는 서술함수인 p를 만족하는 값을 찾아 해당 반복자를 반환합니다. 찾지 못하면 e를 반환합니다.
search 함수는 [b2, e2) 범위에 해당하는 영역을 찾아 해당 영역의 첫 요소를 가리키는 반복자를 반환합니다.
찾지 못하면 e를 반환합니다.

std::copy(b, e, d)
std::remove_copy(b, e, d, t)
std::remove_copy_if(b, e, d, p)
: [b, e) 범위의 요소를 d가 가리키는 영역에 복사합니다.
copy 함수는 해당 영역 전체를 복사합니다.  d로 복사된 요소들 이후를 가리키는 반복자를 반환합니다.
remove_copy 함수는 요소 t와 일치하지 않는 모든 요소를 복사합니다. 마지막으로 복사된 요소의 다음 위치를 가리키는 반복자를 반환합니다.
remove_copy_if 함수는 서술 함수 p를 만족하지 않는 모든 요소를 복사합니다. remove_copy 함수와 같은 값을 반환합니다.

std::remove_if(b, e, p)
: [b, q) 범위의 요소들 중 서술함수 p를 만족하지 않는 요소들이 앞에 위치하도록 요소들을 재배치합니다.
p를 만족하지 않는 마지막 요소의 다음 요소를 가리키는 반복자를 반환합니다.

std::remove(b, e, t)
: [b, q) 범위의 요소들 중 t와 일치하지 않는 요소들이 앞에 위치하도록 재배치합니다.
t와 일치하지 않는 마지막 요소의 다음 요소를 가리키는 반복자를 반환합니다.

std::transform(b, e, d, f)
: [b, e) 범위의 각 요소들에 함수 f를 호출 후 d가 가리키는 위치에 추가합니다.
d 영역에 모든 요소들이 추가된 후 마지막 요소의 이후를 가리키는 반복자를 반환합니다.

std::partition(b, e, p)
std::stable_partition(b, e, p)
: [b, e) 범위의 요소들 중 서술 함수인 p를 만족하는 요소들이 앞 쪽에 오도록 재배치합니다.
만족하는 영역과 만족하지 않는 영역 두 영역이 존재할 때 만족하지 않는 영역의 첫 요소를 가리키는 반복자를 반환합니다.
partition 함수는 각 영역에서 요소의 정렬 전/후 순서가 달라질 수 있으며, stable_partition 함수는 요소의 순서를 유지합니다. 




댓글