如何最好地检查一个std::vector
是否已排序?除了循环检查v[i]<=v[i+1]
,还有更快的方法吗?使用迭代器更快/更清晰吗?或者每次都调用sort
是否更好(尽管“v已经排序”情况相当常见)?
我们可以安全地假设向量仅包含POD,通常为float
,有时为double
和int
。
向量的大小不是微不足道的(通常是几千个项),但并不极端(不是千兆字节级别的)。
- 在某些情况下,我们会立即对向量进行排序,但是在算法的错误案例中,我们也会有其他情况不需要对其进行排序。
- 我们已经尽可能使用标志“IsSorted”。