为什么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”
答案 0 :(得分:2)
它确实可以正常工作,但您选择了错误的测试数据。
std::inplace_merge
在序列中的两个已排序的连续范围上进行合并,就像合并排序一样。
也就是说,如果您传递字符串adebcf
(假设参数在您的问题中设置),它将合并到abcdef
。
如果传递字符串abcdef
,则结果与输入相同,因为此字符串已按顺序排列。