STL有什么意义?

时间:2010-03-25 13:40:13

标签: c++ stl

我已经编程c ++大约一年了,当我看到我看到很多对STL的引用时。

有人可以告诉我它的作用吗?

它的优点和缺点是什么?

它还能给我带来的VCL或MFC?

谢谢

9 个答案:

答案 0 :(得分:23)

这是C ++标准库,为您提供各种非常有用的容器,字符串,算法等等。

术语'STL'已经过时恕我直言,过去的STL已经成为C ++标准库的重要组成部分。

如果你正在进行任何严肃的C ++开发,你需要熟悉这个库,最好是boost库。如果您还没有使用它,那么您可能正在以错误的抽象级别工作,或者您将自己限制在C ++的小型子集中。

答案 1 :(得分:4)

STL代表标准模板库。这是一个主要由Stepanov和Lee设计的库,后来被用作C ++标准库的一部分。该术语逐渐变得毫无意义,但涵盖了标准库的这些部分:

  • 容器(矢量,地图等)
  • 迭代
  • 算法

如果你称自己为C ++程序员,那么你应该熟悉所有这些概念,以及它们的标准库实现。

答案 2 :(得分:3)

STL是标准模板库。与任何库一样,它是一组代码,通过提供经过良好测试的强大代码,让您重复使用,从而使您的生活更轻松。

  1. 需要他们在STL中的集合(地图,列表,矢量等)
  2. 需要对STL中的集合(for_each,copy,transform等)进行操作
  3. 需要做I / O,有类。
  4. 优点

    1,你不必重新实现标准容器(无论如何你都会犯错)

    阅读Nicolai M.Josuttis的这篇book以了解有关STL的更多信息,这是最好的STL参考书。

答案 3 :(得分:2)

它为程序员提供了常用的有用工具!迭代器,算法等为什么重新发明轮子?

答案 4 :(得分:1)

<优点和缺点“相比什么?自己编写所有代码?不是很明显吗?这是与他们合作的伟大的收藏和工具

答案 5 :(得分:0)

STL有Iterators。当然,收藏品和东西都是有用的,但是权力迭代器是巨大的,而且,根据我的拙见,相比之下,其余部分会变得苍白。

答案 6 :(得分:0)

维基百科有一个很好的概述:http://en.wikipedia.org/wiki/Standard_Template_Library

STL解决了C ++的一大缺陷 - 缺少标准的字符串类型。这引起了无数令人头疼的问题,因为有成千上万的字符串实现无法很好地协同工作。

答案 7 :(得分:0)

它代表标准模板库

这是一组功能和类,可以为您节省大量的工作。

它们旨在使用模板,您可以在其中定义函数,但无需定义它将使用的数据类型。

例如,矢量或多或少可以让你拥有动态数组。当你创建它的实例时,你会说出你想要它的类型。这甚至可以是您自己的数据类型(类)。

这是一件很难想的事情,但它非常强大,可以节省你的时间。

立即阅读!你要后悔。

答案 8 :(得分:0)

它为您提供了另一个首字母缩略词,可以在鸡尾酒派对中折腾。

说真的,检查介绍文档,例如使用Wikipedia article on STL