![]() |
VOOZH | about |
C++ STL provides a merge() function to merge two sorted containers into a single sorted container. It is defined in the <algorithm> header and has two main implementations.
template <class InputIterator1, class InputIterator2, class OutputIterator>
OutputIterator merge(InputIterator1 beg1, InputIterator1 end1,
InputIterator2 beg2, InputIterator2 end2,
OutputIterator res);
Parameters:
Return value: Returns an iterator pointing to the element past the last element of the resulting merged container.
Code:
The container after merging initial containers is : 1 1 2 2 3 4 5 6 6 7
template <class InputIterator1, class InputIterator2, class OutputIterator, class Compare>
OutputIterator merge(InputIterator1 beg1, InputIterator1 end1,
InputIterator2 beg2, InputIterator2 end2,
OutputIterator res, Compare comp);
Parameters:
Return value: Returns an iterator pointing to the element past the last element of the merged container.
Code:
Output :
The container after reverse merging initial containers is : 7 6 6 5 4 3 2 2 1 1 Possible application : The merge function can be used to make a single stack of two stacks available in sorted order. These can be stack of books or notes. Let us discuss a simple example that merge orders two stack of notes in ascending order into one on basis of its value.
The original 1st stack : 50 20 10 100 2000 The original 2nd stack : 500 2000 10 100 50 The resultant stack of notes is : 10 10 20 50 50 100 100 500 2000 2000