728x90
반응형

  find_first_of() 알고리즘은 두 순차열을 비교하여 모든 원소 중 같은 원소가 하나라도 발견되면 발견된 첫 원소의 반복자를 반환합니다.

[예제] find_first_of() 알고리즘의 예제입니다.

  - iter = find_first_of(v1.gegin(), v1.end(), v2.begin(), v2.end()) : 구간[v1.begin(), v1.end()) 순차열에서 구간[v2.begin, v2.end())의 원소 중 같은 원소가 발견되면 첫 원소의 반복자를 반환합니다.

- v1의 순차열에서 v2의 순차열 원소가 첫 번째로 발견되는 위치는 10이므로 10의 반복자를 반환합니다.

[예제] 조건자를 사용한 find_first_of() 알고리즘의 예제입니다.

- 순차열 v1에서 v2의 순차열 원소 50, 30, 10보다 큰 수는 20이 처음이므로 iter는 20원소의 반복자입니다.

만약 v1 : 10 20 30 40 50 이고

       v2 : 40 80 20 이라면

      iter는 30이 됩니다.

  순차열의 모든 원소에 사용자 동작을 적용하려면 일반적으로 for_each() 알고리즘을 사용합니다. for_each() 알고리즘은 원소를 수정하지 않는 알고리즘과 원소를 수정하는 알고리즘 두 분류에 모두 포함됩니다.

[예제] for_each() 알고리즘을 사용하여 모든 원소를 출력하는 예제입니다

  c++에는 기본 문법인 for문이 있습니다. for문으로 모든 반복문을 만들 수 있고 실행시킬 수 있습니다. for문으로 불편함 없이 사용 가능하지만 c++ 알고리즘에는 for_each() 알고리즘이 존재합니다.

- for_each() 알고리즘의 장점 for_each문을 사용하면 코드가 간결해집니다.

- for_each()알고리즘의 단점한번 실행하면 끝까지 실행됩니다. 즉, 중간에 중단이 불가능합니다.

  if문을 활용한 break도 불가능합니다.

[출력 결과]

10 20

10 20 30 40

10 20 30 40 50

- for_each(v.begin(). v.end(), Print) :  구간 [v.begin(), v.end())의 모든 원소에 대해 Print(*p)를 적용합니다. p는 순차열의 반복을 의미합니다.

 

반응형

'C++ STL' 카테고리의 다른 글

19. c++ stl 우선순위 큐  (0) 2020.06.11
18. c++ STL [vector 5일차] 2차원 vector  (0) 2020.04.30
16. c++ stl find(), find_if(), find_end() - 문제12  (0) 2020.04.06
15. c++ stl equal()  (0) 2020.04.05
14. c++ stl count(), count_if()  (0) 2020.04.04
Posted by 명문코딩컴퓨터
,