gpt4 book ai didi

c++ - 在堆栈上使用 std::max_element

转载 作者:行者123 更新时间:2023-11-28 05:54:34 26 4
gpt4 key购买 nike

我怎样才能得到堆栈的最大元素? STL 堆栈没有任何 begin()end() 方法,我可以通过以下方法获得最大值:

auto max = max_element(c.begin(), c.end());

最佳答案

std::stack 有一个受限制的接口(interface),这是该抽象的全部要点。如果没有,那么您可以使用例如一个 std::deque。但是您有多种选择:

  • 您可以弹出所有项目。如果您希望最后返回原始堆栈,则只需将它们推回即可。

  • 您可以访问底层容器(无需使用派生类)。这是一个 protected 成员。如果您害怕强制转换和形式上未定义的行为,臭名昭著的成员指针 C++ 类型系统漏洞会很有用。

  • 您可以直接使用自定义派生类代替 std::stack

此列表并不详尽,但它们是更自然的选择。

即其他方法是相当不自然和解释的。

关于c++ - 在堆栈上使用 std::max_element<int>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34470793/

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