【问题标题】:What is the difference between the standard library and the standard template library?标准库和标准模板库有什么区别?
【发布时间】:2011-05-03 02:47:39
【问题描述】:

我不断看到对 C++ 标准库和 C++ 标准模板库 (STL) 的引用。它们之间有什么区别?维基百科提到他们共享一些标题,但仅此而已。

【问题讨论】:

标签: c++ stl standards c++-faq


【解决方案1】:

Standard Template Library (STL) 是由 Alexander Stepanov 创建的容器、迭代器、算法和函数对象的库; SGI 网站有规范的实现和文档。

标准库是 C++ 的一部分;它包括大部分标准模板库 (STL)。

在常用的用法中,“STL”也用于指代来自或派生自实际 SGI STL 的 C++ 标准库的部分。例如,人们经常使用“STL”来指代std::vector 和 C++ 标准库中的其余容器,因为它们起源于 SGI STL。

【讨论】:

  • 我一直认为 STL 是 Alexander Stepanov 在惠普工作时创建的......
  • @jalf: Stepanov's website 表示 SGI 的实现由“Matt Austern 和 Hans Boehm(由 Alexander Stepanov 管理)完成”。除此之外,我找不到任何其他信息。
  • 我不喜欢“包含”。这意味着(a)副本是逐字记录的[它不是],并且(b)更改为一个意味着另一个更改[他们没有]。在句子中使用“基于”是最好的。
  • @LightnessRacesinOrbit: 并且 (c) 一个中的所有内容都在另一个中 [这不是]。
  • 补充答案,你现在使用的(带有std::前缀)可能不是“STL”,而只是“标准库”,除非你故意获得并安装了一个历史 STL 的副本。
猜你喜欢
  • 2011-07-09
  • 1970-01-01
  • 2015-06-10
  • 2018-11-27
  • 2017-08-13
  • 2015-02-12
相关资源
最近更新 更多