inplace_merge:为什么inplace_merge不合并字符串?

inplace_merge : why isn't inplace_merge merging the strings?

本文关键字:inplace merge 字符串 合并 为什么      更新时间:2023-10-16

为什么inplace_merge不合并下面的代码中的字符串?

string src = "abc";
string new_str = "def";
src += new_str;
inplace_merge(src.begin(), src.begin()+3, src.end());
cout << src; // abcdef

编辑:我期望"adbecf"

它确实工作正常,但您选择了错误的测试数据。

std::inplace_merge对序列中的两个已排序的连续范围执行合并,就像在合并排序中一样

也就是说,如果您传递字符串adebcf(假设参数设置为您的问题),它将被合并到 abcdef 中。如果传递字符串abcdef ,则结果与输入相同,因为此字符串已经按顺序排列。