具有相同参数的c ++ std排序

时间:2016-03-25 19:51:48

标签: c++ sorting std

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

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

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

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

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

回答后更新

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

2 个答案:

答案 0 :(得分:4)

代码

.row and .col 
 {
    height 100%;
 }

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

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

将对sort(myvec.begin(), myvec.end()); 的全部内容进行排序。如果这些碰巧做同样的事情,那就意味着你的矢量已经被排序了。第一行几乎肯定是一个错字或等待发生的错误。

答案 1 :(得分:1)

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

此代码无疑应为sort(myvec.begin(), myvec.end());