![]() |
1
74
简而言之:永远。 答案很长:总是。他们就是为了这个。它们是优化的,用于STL容器,而且它们比任何你自己写的都快,更清晰,更习惯。你应该考虑滚动自己的唯一情况是,如果你能明确地表达STL算法不能满足的非常具体的、关键任务的需求。 真正地 |
![]() |
2
18
你已经得到了很多答案,但我不能完全同意其中任何一个。有一些非常接近于标准,但没有提到关键点(当然是IMO)。 你在写作。
其实就这么简单。在某些情况下,您所做的需要使用
如果没有一个标准的算法可以做你想做的事情,那就要多加小心,再看一遍——你经常会错过一些真正可以做你想做的事情(一个经常错过的地方是:中的算法)
|
![]() |
3
15
STL算法应该在适合您需要做的任何时候使用。这几乎是所有的时间。 |
![]() |
4
13
当你珍惜你的时间和理智,做比一次又一次地重新发明轮子更有趣的事情时。
|
![]() |
5
8
我编写性能关键型应用程序。这些都是需要在尽可能快的时间内处理数百万条信息的事情。如果不是STL,我就不能做我现在做的一些事情。经常使用它们。 |
![]() |
6
6
除了像这样的东西,还有很多好的算法
还有很多其他的。
算法如
|
![]() |
7
3
-- 您可能无法在代码中看到它的原因是,它要么是遗留代码,要么是由遗留程序员编写的。在STL问世之前,我们有大约20年的C++编程,在那时我们有一个程序员群体,他们知道如何用老方法做事,还没有学会STL方式。这种情况可能会持续一代人。 |
|
8
2
我唯一不使用STL算法的时候,就是跨平台实现的差异影响了我的程序的结果。这只发生在一两个罕见的案例中(在PlayStation3上)。虽然STL的接口是跨平台标准化的,但是实现不是。 另外,在某些高性能的应用程序(比如视频游戏、视频游戏服务器)中,我们用自己的STL结构替换了一些STL结构,以寻求更高的效率。 然而,绝大多数时间使用STL是可行的。在我的其他(非视频游戏)工作中,我只使用STL。 |
![]() |
9
2
对于其他不太常用的STL算法,例如
在90年代中期的假设下工作的模板是缓慢的,因此要避免。 |
![]() |
10
2
现在的问题是,C++的0x支持仍然局限于几个编译器,即使标准还没有完全完成。所以我们可能要等几年才能真正看到STL算法在生产代码中的广泛应用。 |
![]() |
11
1
|
![]() |
12
1
当你认为你可以更好地编码它比一个真正聪明的程序员谁花费数周的研究和测试,并试图应付每一个可以想象的输入集。 对大多数地球人来说,答案是永远不会! |
![]() |
13
-4
Lambda functions and expressions ),甚至被淘汰(参见 Range-based for-loop ),在下一个版本的C++中。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |