gpt4 book ai didi

C++ 算法堆分配保证

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:55:43 24 4
gpt4 key购买 nike

C++ 标准是否保证标准算法的非执行策略重载不会进行自由存储(即堆)分配?

我正在进行实时处理,并且想使用,例如,std::max_element,但我看不到任何关于它不在堆上分配的保证。它没有是有道理的,但我没有看到任何地方指定。也许我遗漏了一些保证这一点的一般条款?

最佳答案

该标准确实禁止任何算法分配内存。由于了解算法是否分配内存可能是有用的/必要的,因此省略此规范可能被视为缺陷(我认为该主题没有突出的缺陷)。指定哪些算法不允许分配内存应该不会太糟糕,只要清楚这些分配只涵盖算法自己的操作而不是对其参数的操作:算法可能使用反过来可能需要内存分配的对象。

从理论上讲,可以想象某些算法可能会受益于临时缓冲区并可以分配内存。然而,在实践中有一些算法会这样做(例如,rotate() 可以从分配内存中获益)。像 std::max_element() 这样的算法不会分配内存,尽管没有指定不分配内存。

关于C++ 算法堆分配保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47791316/

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