C++ std::sort 具有相同的参数

C++ std::sort with identical arguments

我正在阅读别人的代码,我看到了这样的东西:

sort(myvec.begin(),  myvec.begin());

我写了一些代码来测试它,它似乎和

做了同样的事情
sort(myvec.begin(),  myvec.end());

他们真的做同样的事情吗?有记录吗?有没有办法理解为什么,或者以这种方式实施它只是一个任意选择?

回答后更新

是的,这是一个空操作。我的测试代码有一个错误。

代码

sort(myvec.begin(),  myvec.begin());

应该是空操作,因为那是一个空范围。代码

sort(myvec.begin(),  myvec.end());

将对 myvec 的全部内容进行排序。如果这些碰巧做同样的事情,则意味着您的矢量已经排序。第一行几乎可以肯定是拼写错误或等待发生的错误。

迭代器只是指定范围的一种方式。如果您甚至认为这段代码可以正常工作,那么您一定对它们有不好的直觉。如果我们使用采用 2 个索引的方法 -> 正在排序的向量部分的开始索引和指示它结束的索引会怎么样。 sort(0, myvec.size())sort(0, 0) 是等价的吗?

这段代码无疑应该是sort(myvec.begin(), myvec.end());