【发布时间】:2012-08-10 10:34:38
【问题描述】:
我不明白为什么他们在 C++ STL 中分离了算法、迭代器和容器。如果到处都大量使用模板,那么我们可以让类将所有东西放在一个带有模板参数的地方。
我得到的一些文本解释说,迭代器有助于算法与容器数据进行交互,但如果容器公开一些机制来访问它拥有的数据呢?
【问题讨论】:
-
我一个字都听不懂。 :(
-
好吧,很抱歉造成的混乱,我的意思是我们有不同的容器类、迭代器等。我想弄清楚如果我们使用模板将所有内容放在一个类中会出现什么问题,容器有数据并且它们可以暴露一些接口来查看或修改。为什么他们是分开的?我的意思是为什么会有不同的迭代器、算法等。
-
This question 可能会给你一些建议。 This interview 与 STL 的创建者 Alex Stephanov 也包含一些见解。
-
这个问题可能措辞不明确,但这是一个真实的问题。答案是
M容器 +N算法通常需要M * N代码段,但迭代器充当“胶水”,您只能拥有M + N代码段。 -
@rhalbersma:投票支持重新开放,您的评论是我自己能想到的最佳答案。
标签: c++ algorithm stl iterator containers