【发布时间】:2010-01-24 15:51:30
【问题描述】:
我在 Linux 上;查看 STL 标头;它们真的很复杂。
是否存在具有 STL 核心功能但实际上可读的较小版本的 STL?
谢谢!
【问题讨论】:
-
我正在编写自己的一些模板。我想了解如何实施 STL 以从他们的权衡中学习。
-
@jalf » 出于教育目的,在幕后偷看通常是值得的。并非黑盒子内的每一次查看都是出于偷偷摸摸的封装破坏的原因。 :)
-
@John:但大多数都是。无论如何,可以从中学到的东西很少。 STL 代码的设计目的不是 1) 好,或 2) 可移植。它通常是为特定的编译器和平台设计的,这意味着它可以摆脱您自己的代码应该不依赖的所有特定于实现的技巧。可以从 STL 中学习很多东西,但您可以从界面、文档和底层设计中学习,而不是实现。
-
@280Z28 没有“STL的实现”。
-
@280Z28:我们不要走神。 OP 想将他的 STL 实现作为学习练习来阅读。因此,就this 问题而言,阅读和理解STL 实现不是 副作用。除此之外,您不太可能通过阅读源代码来了解“为什么”。再次以我上面的例子为例,阅读源代码只会告诉你“如何”:(模板类型应该以下划线开头,后跟大写字母),但它没有告诉你 why:(因为那些名称是为实现保留的,因此我们不会冒险与用户定义的名称发生冲突)