gpt4 book ai didi

c++ - gdb:如何获得 std::vector 的最大值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:01 26 4
gpt4 key购买 nike

我正在调试一些 C++ 代码,我有一个非常大的 std::vector<floating_point_type> ( floatdouble )。在 C++ 代码中,当我想要 std::vector 的最大值时我可以使用 std::max_element() .所以在 gdb我尝试使用相同的代码,但出现错误。

gdb我用了call std::max_element(x)并收到一条错误消息 No symbol "max_element" in namespace "std".

有什么方法可以得到 gdb 中 vector 的最大值吗? ?

我也希望能解释为什么我尝试使用 std::max_element不工作(可能是 std::max_element 仅 header 或内联函数)。

最佳答案

std::max_element 是函数模板,不是函数。您要求 GDB 进行模板参数推导,整个过程涉及在不指定参数的情况下调用模板函数。它不能那样做,自然,它不是一个成熟的编译器。

据我所知,任何解决方案,从最简单的到最复杂的,都需要您以 std::max_element 为迭代器类型实例化的方式修改源代码你的载体。因此,您不妨添加“仅调试”代码来计算最大元素并将其存储到局部变量中。

关于c++ - gdb:如何获得 std::vector<float> 的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50910526/

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