【问题标题】:What does "STL allocate memory internally" means?“STL 内部分配内存”是什么意思?
【发布时间】:2013-05-21 10:06:34
【问题描述】:

我正在阅读this answer,也许是因为我从未遇到过这个词,我不明白用户在该答案的第一点中提到了什么,有人可以使用更简单的词或示例来说明该语句的含义是什么意思?

【问题讨论】:

  • 这意味着相关的标准库组件(例如vector)负责分配它所需的所有内存,并且使用不必关心这种情况发生的方式或位置(尽管您有一些控制权通过分配器对此进行处理)。
  • @s3rius 这是不正确的。 “内部分配内存”不是关于性能或所用内存数量的陈述,只是那些容器自己分配内存。
  • 你是对的。但得出这个结论并不遥远。这些是开发像 EASTL 这样的东西的部分原因。但是,是的,这个声明与性能或数量无关。还不如摆脱它。
  • @s3rius 事实上,这个跳跃相当长。以我的经验,当使用标准库减慢应用程序时,它是由于滥用,由于缺乏专业知识。
  • 另请注意,STL 很可能是用词不当。标准模板库 (STL) 构成了很久以前成为 C++ 标准库的许多内容的基础。所以说C++标准库更准确,因为这是大多数人写C++时使用的。

标签: c++ stl standard-library


【解决方案1】:

当您使用向量或地图之类的东西时,...它属于 STL(标准模板库)。您不需要像在数组中那样分配内存。实时数组是不够的,我们无法确定大小。

当您向其中添加元素时,STL 容器将在内部分配内存。所以有很好的内存管理。 [如果用户手动分配,分配少可能不够,分配太多内存会浪费]。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
相关资源
最近更新 更多