为什么不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”
为什么不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
,结果与输入相同,因为这个字符串已经是有序的。