▣ equal(b, e, b2) : [b, e)와 [b2, b2+(e-b))의 모든 원소가 같은가?
▣ equal(b, e, b2, f) : [b, e)와 [b2, b2+(e-b))의 모든 원소가 f(*p, *q)가 참인가?
▣ v.begin() : 컨테이너의 시작 원소를 가리키는 반복자를 반환합니다
▣ v.end() : 컨테이너의 끝 표시 반복자를 반환합니다.
두 순차열의 원소를 비교하는 equal() 알고리즘 예제입니다.
- equal(v1.begin(), v1.end(), v2.begin()) ; 구간 [v1.begin(), v2.end())의 원소의 개수가 3개이므로 두 구간 [v1.begin(), v1.end())와 [v2.begin(), v2.begin()( + 3)의 순차열을 비교합니다. 그래서 두 순차열은 같습니다.
- 조건에 따라 두 순차열이 같은지 비교하고자 한다면 equal(b, e, b2, f) 버전을 사용합니다. f는 이항 조건자로 각 순차열의 반복자 p와 q에 대해 f(*p, *q)가 모두 참이면 equal() 알고리즘은 참으로 변합니다.
다음은 조건자 버전 equal() 알고리즘 예제입니다.
- equal(v1.begin(), v1.end(), v2.begin(), Pred) : 두 순차열의 반복자가 각각 p와 q라면 순차열의 모든 원소에 대해 Pred(*p, *q)가 참이므로 참을 반환합니다.
'C++ STL' 카테고리의 다른 글
17. c++ stl find_first_of() for_each() 알고리즘 (0) | 2020.04.16 |
---|---|
16. c++ stl find(), find_if(), find_end() - 문제12 (0) | 2020.04.06 |
14. c++ stl count(), count_if() (0) | 2020.04.04 |
13. c++ stl int를 string으로 변환 - to_string() (0) | 2020.04.03 |
12. C++ stl fill() fill_n() (0) | 2020.04.03 |