【问题标题】:Are some std classes in C++ used in real life applications? [closed]C++ 中的一些标准类是否用于现实生活中的应用程序? [关闭]
【发布时间】:2021-05-10 15:45:55
【问题描述】:

我有一个问题,在实际应用中,例如:公司、软件开发等...他们是否使用一些 std 类(或容器,我不确定正确的名称),例如 std::vectorstd::arraystd::string 在代码中?还是他们实施了新的?

【问题讨论】:

  • 当然,你为什么怀疑?您认为标准库有什么问题?
  • 我想是因为我的第一个语言是 Python。我转向了更“高级”的 c++,所以我想也许公司更愿意自己编写一些类似的代码
  • 当您可以免费获得高质量的库代码时,您可以花钱购买自己的程序员?
  • 当然,专业领域的公司会花时间为各种目的开发自己的内部库代码。但在大多数情况下使用标准化库有巨大的好处(不仅是成本)。
  • @LucasSaito 当您使用 Python 时,您使用的是标准库,还是您自己实现了它提供的所有功能?

标签: c++ production-environment production


【解决方案1】:

这取决于您的构建平台。如果它用于嵌入式应用程序,您可以使用自定义实现来适应该平台并获得更好的性能。

如果它用于桌面应用程序,您很可能会使用提供的 STL 容器(为什么要重新发明*?)。

否则可能会出现像虚幻引擎这样的场景,其中 STL 在首次构建时不是首选选项(以及代码反射等其他原因)。

STL 容器可能不是最好和最有效的实现 因为它适用于许多情况,但其功能或多或少是完整的;它拥有编码人员在使用该容器进行开发时所需的一切。话虽如此,性能差异在纳秒范围内,这在现代设备中会产生不明显的差异。当您谈论跨平台兼容性、文档和易于开发时,性能变得更加不明显。

【讨论】:

  • “如果它用于嵌入式应用程序,您可能会使用自定义实现来适应该平台并获得更好的性能。” 当我使用嵌入式 c++ 软件时(对于许多在我的职业生涯中),这是绝对必须的要求,如果您实现自定义容器或标准类的其他替代品(例如线程、通过 UART 的标准 I/O 等),那这些旨在与 c++ 标准库(算法、迭代器等)兼容。
最近更新 更多