`Description`

`Description`

```
```*Merge* combines two sorted ranges *[first1, last1)* and *[first2, last2)* into a single sorted range. That is, it copies elements from *[first1, last1)* and *[first2, last2)* into *[result, result + (last1 – first1) + (last2 – first2))* such that the resulting range is in ascending order. *Merge *is stable, meaning both that the relative order of elements within each input range is preserved, and that for equivalent [1] elements in both input ranges the element from the first range precedes the element from the second. The return value is *result + (last1 – first1) + (last2 – first2)*.

The two versions of *merge* differ in how elements are compared. The first version uses *operator<*. That is, the input ranges and the output range satisfy the condition that for every pair of iterators *i* and *j* such that *i* precedes *j*, **j < *i* is *false*. The second version uses the function object* comp*. That is, the input ranges and the output range satisfy the condition that for every pair of iterators *i* and *j* such that *i* precedes *j*, *comp(*j, *i)* is *false*.