끄적이는 메모장

[C++] std::transform 본문

C, C++, C#/C++ 공부

[C++] std::transform

밥보92 2018. 6. 8. 10:39
반응형

# std::transform

 

@1

std::transform(InputIterator begin1, InputIterator end1, OutputIterator begin2, UnaryOperation op);

 

InputIterator의 주어진 범위내의 값들을 op에 적용한 후 outputIterator의 시작점부터 결과를 작성해준다.

 

ex)

std::vector<int> itr1;

std::vector<int> itr2;

 

for.... itr1.push_back .. // -> itr1 : 1, 3, 5, 7, 9

 

itr2.resize(itr1.size()); // itr2에 itr1과 동일한 크기의 메모리를 할당해줌

std::transform(itr1.begin(), itr1.end(), itr2.begin(), [](int i){return i+1;});

 

// itr2 : 2, 4, 6, 8, 10

 

@2

std::transform(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2, OutputIterator begin3, BinaryOperation op);

 

InputIterator1의 주어진 범위내의 값들을 InputIterator2의 값들과 binaryOperation을 수행한 후 outputIterator의 시작점부터 결과를 작성해준다.

 

ex)

std::vector<int> itr1; // itr1 : 10, 20, 30, 40

std::vector<int> itr2; // itr2 : 15, 25, 35, 45

 

std::transform(itr1.begin(), itr1.end(), itr2.begin(), itr1.begin(), std::plus<int>());

 

// itr1 : 25, 45, 65, 85

 

 

반응형

'C, C++, C# > C++ 공부' 카테고리의 다른 글

[C++] back_inserter / front_inserter  (0) 2018.06.08
[C++] nermeric_limits  (0) 2018.06.08
[C++] std::set_intersection  (0) 2018.06.08
[C++11] tuple  (0) 2018.06.07
[C++11] std::all_of, / std::any_of / std::none_of  (0) 2018.06.07