1

为什么不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”

4

1 回答 1

2

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

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

也就是说,如果您传递字符串adebcf(假设参数设置为您的问题),它将被合并到abcdef. 如果你传递一个字符串abcdef,结果与输入相同,因为这个字符串已经是有序的。

于 2012-06-20T22:35:42.930 回答