STL - Algorithm/Algorithm - Non-Modifying
Algorithm - find_first_of()
Programmer.
2016. 2. 7. 03:00
소스)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include<vector> #include<iostream> #include<algorithm> bool find_first(int i,int j) { if (i == j) return true; return false; } void main() { std::vector<int> Vector = { 1,3,5,7,9,11,13,15 }; std::vector<int>::iterator Iter; std::vector<int>::iterator Iter2; int Array[] = { 3,5,7 }; Iter = std::find_first_of(Vector.begin(), Vector.end(), Array, Array + 3); if (Iter != Vector.end()) std::cout << "First match ->" << *Iter << std::endl; else std::cout << " No Data" << std::endl; int Array2[] = { 11,13 }; Iter2 = std::find_first_of(Vector.begin(), Vector.end(), Array2, Array2 + 3,find_first); if (Iter2 != Vector.end()) std::cout << "First match ->" << *Iter2 << std::endl; else std::cout << " No Data" << std::endl; } | cs |
내용)
find_first_of()함수는 파라메터에 따라서 다른 기능을 합니다.
- find_first_of(w,x,y,z)
이터레이터 x가 가리키는 지점부터 이터레이터 y가 가리키는 지점 사이의 데이터들 중에서 y와 z 사이의 문자들과 같은 데이터가 있다면 w,x 사이에서 같은 부분의 제일 앞을 가리키는 iterator를 리턴하며 값이 없으면 end()를 리턴합니다. - find_first_of(v,w,x,y,z)
이터레이터 v가 가리키는 지점부터 이터레이터 w가 가리키는 지점 사이의 데이터들 중에서 x와 y 사이의 문자들과 z에 부합하여 true를 리턴하는 값들이 존재하는 경우에 v,w 사이에서 같은 부분의 제일 앞을 가리키는 iterator를 리턴하며 값이 없으면 end()를 리턴합니다.
결과)