【发布时间】:2011-05-19 13:58:09
【问题描述】:
STL 中有一个用于列表的 sort() 方法。这很荒谬,因为我更倾向于对数组/向量进行排序。 为什么不为向量提供 sort()?向量容器的创建或使用背后是否有一些基本哲学,没有为它提供排序?
【问题讨论】:
-
这并不完全是重复的,但 AndreyT 对why there is no find for vector in C++ 的回答是相关的。
-
实际上更好的问题是:“为什么
list有sort()方法?为什么不能像vectors 和数组一样使用std::sort()?”也不知道为什么你认为想要对列表进行排序是“荒谬的”。 -
@j_random_hacker:在我看来,这很荒谬可能是因为我看待使用列表的原因。我将其视为连接在一起的链环,在重新排列之前必须断开连接,与矢量相比,我认为矢量就像一副可以轻松洗牌的纸牌。我的看法......当我熟悉使用列表进行编程时,它会变得更加清晰。
-
有趣的是,如果单个对象足够大,对它们的列表进行排序比对向量进行排序会更快,因为您只需要更改链接(每个都是 1 或 2 个指针)而不是复制围绕整个对象。
-
@j_random_hacker:我同意。这也是值得注意的一点..