관리 메뉴

Kim's Programming

Algorithm - partition_copy() 본문

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 % == 0)
        return true;
    return false;
}
 
void main()
{
    std::vector<int> Vector = { 1,2,3,4,5,6,7,8,};
    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를 리턴합니다.



결과)




'STL - Algorithm > Algorithm - Partitions' 카테고리의 다른 글

Algorithm - partition_point()  (0) 2017.07.11
Algorithm - stable_partition()  (0) 2017.07.11
Algorithm - is_partitioned()  (0) 2017.07.10
Algorithm - partition()  (0) 2017.07.10