我正在阅读别人的代码,我看到的是这样的:
sort(myvec.begin(), myvec.begin());
我写了一些代码来测试它,它似乎与
做同样的事情sort(myvec.begin(), myvec.end());
他们真的做同样的事吗?有记录吗?有没有办法理解为什么,或者只是以这种方式实施它的任意选择?
回答后更新
是的,这是一个无操作。我的测试代码有一个错误。
答案 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());