gpt4 book ai didi

c++ - 是否可以在没有中间容器的情况下编写 STL 算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:17 25 4
gpt4 key购买 nike

我的问题的部分动机是 this question .

有没有一种方法可以在没有中间容器的情况下编写 STL 算法或用户创建的算法?答案可以使用来自 boost 的工具,但假设组合算法是用户创建的,或者来自 STL。

所以 boost::adaptors::reversed 不算数,因为反向算法在 boost 中。

最佳答案

没有。

假设 fg 是 STL 算法。

假设您想要的是 f(g(x))(我试图在这里传达这个想法...)。

没有办法绕过中间容器,因为 g(x) 的结果必须是一个容器。

如果您要避免中间容器,那么您必须使用可以“检查”或与其他算法交互的算法,例如 Boost.Range adaptors (例如 boost::adaptors::reversed)。

例如,f 是“排序”,g 是“反向”。 Boost 的适配器可以计算出反向步骤是空操作并跳过它。 STL 算法无法做到这一点,因为该信息无法通过。

关于c++ - 是否可以在没有中间容器的情况下编写 STL 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20602052/

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