Насколько я могу судить, inplace_merge делает то же самое, что и sort, за исключением того, что он работает только при определенных обстоятельствах (когда контейнер уже состоит из двух отсортированных частей).
Другими словами, есть лиразница между этими двумя значениями:
int first[] = {1,3,5,7};
int second[] = {2,4,6,8};
vector<int> v(8);
vector<int>::iterator it;
copy(first,first+4, v.begin());
copy(second,second+4, v.begin()+4);
inplace_merge(v.begin(), v.begin()+4, v.end())
.
int first[] = {1,3,5,7};
int second[] = {2,4,6,8};
vector<int> v(8);
vector<int>::iterator it;
copy(first,first+4, v.begin());
copy(second,second+4, v.begin()+4);
sort(v.begin(), v.end())
Единственная разница будет в эффективности?