【发布时间】:2018-11-27 08:41:30
【问题描述】:
我正在调试一些 C++ 代码,我有一个非常大的 std::vector<floating_point_type>(float 或 double)。在 C++ 代码中,当我想要 std::vector 的最大值时,我可以使用 std::max_element()。所以在gdb我尝试使用相同的代码,但我得到了一个错误。
在gdb 我使用call std::max_element(x) 并收到错误消息No symbol "max_element" in namespace "std".
有什么办法可以得到gdb中向量的最大值?
如果我尝试使用 std::max_element 不起作用(可能是 std::max_element 仅标头或内联函数),我也将不胜感激。
【问题讨论】:
-
std::max_element()是一个模板函数,所以恐怕 gdb 不够聪明,无法即时实例化它。 -
Gdb 允许您编写函数(在它自己的脚本语言或 python 中),您可以调用这些函数来显示您的向量:它们可以简单地迭代元素以找到最大值然后显示它。 this answer 应该可以帮助您入门。
-
@TonyDelroy 我故意写了开放式问题,因为我正在考虑编写自己的 for 循环来查找最大元素。您的评论很容易成为解决方案(无论是 gdb 语言还是 python 语言。)