gpt4 book ai didi

C++ STL : Why do STL data structures not provide a function for measuring the memory consumption?

转载 作者:搜寻专家 更新时间:2023-10-31 00:16:45 25 4
gpt4 key购买 nike

<分区>

在决定任务的最佳数据结构时,需要考虑三个因素:

  • 功能性:数据结构是否提供我需要的操作
  • 性能:这些操作的速度有多快
  • 内存消耗:数据结构使用了多少内存

第一个考虑可以通过检查数据结构的接口(interface)找到,第二个只能在基准测试中衡量。但是,如果数据结构仅提供一种计算当前使用的内存的方法,则第三种方法非常简单,否则很难。

STL数据结构没有这样的方法。但为什么?为STL中的所有数据结构实现这样的方法会非常简单。对于我这个客户来说,写这样的方法是相当困难的,因为我必须熟悉内部实现。此外,这些实现隐藏在私有(private)成员后面,所以我根本无法访问它们。

那么为什么他们被排除在外呢?现在,在选择数据结构时,许多其他实现,如当前发布的 google btree 实现,确实提供了这些方法。比较这些数据结构很容易。但是,当询问 STL 数据结构在内存消耗方面的表现如何时,我基本上只能猜测。

我找不到任何理由说明为什么忽略这些方法可能是一个设计决定。此外,C++ 是一种为高性能和低内存占用而优化的语言。尤其是在这样的语言中,我认为评估数据结构的内存消耗是一个非常常见的用例。所以我也不能认为它们被排除在外是因为没有人会使用它们。另外,STL也是一个比较成熟的库,所以也不应该是库不够完善。那么省略这些方法的原因可能是什么?

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