gpt4 book ai didi

c++ - 什么时候应该使用编译器附带的 STL 以外的 STL?

转载 作者:IT老高 更新时间:2023-10-28 12:43:12 30 4
gpt4 key购买 nike

我对 gcc 或 Visual Studio 打包之外的 STL 实现感到好奇,因此快速 Google 搜索出现了一些结果,例如:

在什么情况下应该使用另一种标准模板库?

例如,Apache 的页面有一个列表,其中包括“完全符合 C++ 标准”和“针对快速编译和极小的可执行文件大小进行了优化”等项目。如果它那么好,为什么不替换 libstdc++?


为了完整起见,以下是其他一些 STL 实现:

最佳答案

除了与编译器一起打包的版本之外,我从不需要使用 STL 版本。但是我想到了一些要点。

  • 线程安全:来自 apache 的 STL 提供了一个编译开关来打开/关闭一些线程安全功能。
  • 本地化:同样来自 apache 的 STL 对许多不同的语言环境提供了很好的支持。
  • 数据结构:您可能需要一个基于 COW(写时复制)的 basic_string 实现,而您的编译器附带的 STL 版本不需要提供那个。
  • 非标准扩展:您喜欢其他一些 STL 实现的特定功能。例如,来自 Dinkumware(Visual Studio 附带)的 hash_map(及相关)版本与 STLPort 中的 hash_map(及相关)有显着不同的设计。 .
  • 二进制问题:在某些环境(嵌入式软件)中因代码大小而受到限制。在这种情况下,如果您不需要整个 STL,那么使用简化版本可能会很有趣。
  • 性能:如果您在分析后发现“其他”STL 实现为特定应用程序提供了显着更好的性能,该怎么办。 (有这么多关于算法和数据结构的细节,这实际上是可能的。)
  • Debug模式:一些 STL 实现提供了很好的调试功能。例如,检查迭代器的范围。

关于c++ - 什么时候应该使用编译器附带的 STL 以外的 STL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1709693/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com