c – 对STL或!STL,这是的问题

毫无疑问,我会选择将STL用于大多数C编程项目.最近我提出了这个问题,“有没有你不会使用STL的情况?”……

我越是想到它,我就越意识到也许应该是我选择不使用STL的情况……例如,一个非常大的长期项目,其代码库预计将持续数年……也许是真正符合项目需求的定制容器解决方案值得最初的开销吗?你怎么想,有没有你选择不STL的情况?

解决方法:

具有严格内存要求的项目(例如嵌入式系统)可能不适合STL,因为很难控制和管理从堆中获取和返回的内容.正如Evan所说,编写适当的分配器可以帮助解决这个问题,但是如果你计算所使用的每个字节或者关注内存碎片,那么手动推出针对您的特定问题量身定制的解决方案可能更为明智,因为STL已经过优化用于最常用的用途.

您也可以选择不对特定情况使用STL,因为存在不在当前标准中的更多适用容器,例如boost :: array或boost :: unordered_map.

上一篇:c – 更改给定STL容器的value_type


下一篇:c – 哪个STL容器可以在两个方向上生长?