什么';这两者之间的区别是什么;STL";及;C++;标准库;? 有人提醒我,STL术语被滥用,引用了整个C++标准库,而不是从SGI STL中获取的部分。

什么';这两者之间的区别是什么;STL";及;C++;标准库;? 有人提醒我,STL术语被滥用,引用了整个C++标准库,而不是从SGI STL中获取的部分。,c++,stl,std,c++-standard-library,c++-faq,C++,Stl,Std,C++ Standard Library,C++ Faq,(…)它指的是“STL”,尽管很少有人仍然使用STL(由SGI设计) 部分C++标准库是基于STL的部分,而这些部分(包括一些作者和臭名昭著的错误CPLUS PLUS .com)仍然称为“STL”。但这是不准确的,;实际上,C++标准从来没有提到“STL”,并且两者之间存在内容差异。 (…)“STL”很少用于指代碰巧基于SGI STL的stdlib位。人们认为这是整个标准图书馆。它被放在简历上。这是一种误导 我对C++的历史几乎一无所知,所以我无法判断这篇文章的正确性。我应该避免使用术语STL吗

(…)它指的是“STL”,尽管很少有人仍然使用STL(由SGI设计)

部分C++标准库是基于STL的部分,而这些部分(包括一些作者和臭名昭著的错误CPLUS PLUS .com)仍然称为“STL”。但这是不准确的,;实际上,C++标准从来没有提到“STL”,并且两者之间存在内容差异。 (…)“STL”很少用于指代碰巧基于SGI STL的stdlib位。人们认为这是整个标准图书馆。它被放在简历上。这是一种误导

我对C++的历史几乎一无所知,所以我无法判断这篇文章的正确性。我应该避免使用术语STL吗?或者这是一个孤立的意见吗?< /P> < P>“STL”或“标准模板库”一词在ISO 14882 C++标准中没有出现。因此,将C++标准库称为STL是错误的。术语“C++标准库”或“标准库”是ISO 14882正式使用的术语:

ISO 14882 C++标准: 17-图书馆简介[lib.Library]:

  • 本条款描述了C++标准库的内容,以及 一个格式良好的C++程序利用了 图书馆,以及图书馆是如何运作的 实施可提供 库中的实体
  • STL是Alexander Stepanov最初设计的一个库,独立于C++标准。但是,C++标准库的一些组件还包括STL组件,如:代码>向量< /代码>、代码>列表>代码>以及算法>代码>复制<代码>和<代码>交换< /COD> < < /P> 当然,C++标准包含了STL之外的更多东西,因此“C++标准库”一词更为正确(也是标准文档实际使用的内容)。

    < P> > C++之前标准化的“STL”。C++在80年代就已经存在,但我们现在称之为“ISO/IEC 1488—2014年标准化语言(以及早期版本,如ISO/IEC 1488∶2011)。

    STL已经广泛地被用作C++的库,它使程序员可以访问容器、迭代器和算法。当标准化发生时,语言委员会设计了C++标准库的部分(这是语言标准的一部分),以便非常紧密地匹配STL。 多年来,许多人(包括著名的图书作者和各种网站)继续引用C++标准库作为“STL”,尽管这两个实体是分开的,并且存在一些差异。这些差异在即将到来的新C++标准中更加明显,它包括各种特征并显著地改变某些类。 <>原始STL现在通常被称为“C++标准模板库的实现”(而实际上是向后的历史!),与您的微软Visual Studio或GCC一样,它提供了C++标准库的实现。但是“标准模板库”和“标准库”不是一回事

    争论的焦点在于当前的标准库是否应该全部或部分地称为“STL”,以及/或者它的名称是否重要

    用于“STL”

    有一个学派认为,现在每个人都知道“STL”意味着标准库,正如现在每个人都知道“C++”是ISO标准化语言一样

    它还包括那些认为只要各方都理解所讨论的内容就无关紧要的人

    <>这是一个更为普遍的术语,它是野兽的本性,其中很多都大量使用了被称为“模板”的C++特性。 用于“C++标准库”(或stdlib)

    然而,还有另一个学派——我也赞同——认为这令人困惑。人们第一次学习C++时不知道这一区别,也可能没有注意到小的语言差异。 <> P>作者曾多次遇到过这样的人,他们认为整个C++标准库是STL,包括STL本身的一些特征。相比之下,“STL”的大多数直言不讳的支持者确切地知道他们的意思,并且拒绝相信不是每个人都“理解”。显然,这个词的用法并不统一

    此外,还有一些STL类库,其实是原始STL的实现,而不是C++标准库。直到最近,它还是其中之一(即使在那里,也有很多!)

    另外,C++标准不包含任何文本“STL”,有些人习惯使用“STL被包含在C++标准库中”这样的短语,这是不正确的。p> 我相信,继续以这种方式宣传这个词的用法只会导致永远的误解。唉,试图改变事情可能完全适得其反,即使这本应该是好事。我们可能永远被双重含义所困扰

    结论

    我很欣赏这篇文章有点偏颇:我写了你链接到的那篇文章。:)无论如何,我希望这有助于更好地解释这场战斗

    2011年4月13日更新


    这里有人使用“STL”来引用整个C++标准库。我仍然感到困惑的是,这么多人发誓说没有人做过这种事,而事实上几乎每天都能看到