STL - Algorithm/Algorithm - Partitions
Algorithm - partition_copy()
Programmer.
2017. 7. 11. 13:01
원형)
1 2 3 4 5 6 | template <class InputIterator, class OutputIterator1, class OutputIterator2, class UnaryPredicate pred> pair<OutputIterator1,OutputIterator2> partition_copy (InputIterator first, InputIterator last, OutputIterator1 result_true, OutputIterator2 result_false, UnaryPredicate pred); | cs |
의미)
[Iterator first, Iterator last)사이에 있는 데이터들 중에 pred 함수로 true를 리턴하는 값은 Iterator result_true가 가리키는 위치부터 복사하고 false를 리턴하는 값은 Iterator result_false가 가리키는 위치부터 복사합니다.
소스)
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 | #include <iostream> #include <algorithm> #include <vector> void print(std::vector<int> Target_Vector) { for (std::vector<int>::iterator IterPos = Target_Vector.begin(); IterPos != Target_Vector.end(); ++IterPos) std::cout << *IterPos << " "; std::cout << std::endl; } bool isEven(int value) { if (value % 2 == 0) return true; return false; } void main() { std::vector<int> Vector = { 1,2,3,4,5,6,7,8,9 }; std::vector<int> Odd_Vector(10), Even_Vector(10); std::partition_copy(Vector.begin(), Vector.end(), Even_Vector.begin(), Odd_Vector.begin(), isEven); print(Even_Vector); print(Odd_Vector); } | cs |
리턴값)
Iterator result_true와 Iterator result_false가 가리키는 생성된 컨테이너의 마지막을 가리키는 Iterator들의 pair를 리턴합니다.
결과)