gpt4 book ai didi

c++ - 无法在 std::min_element 的返回值上编译

转载 作者:太空狗 更新时间:2023-10-29 23:34:58 26 4
gpt4 key购买 nike

#include <map>
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
std::map<double, double> A;

const auto it = std::min_element(A.begin(), A.end(),
[](decltype(A)::value_type& l, decltype(A)::value_type& r) -> bool { return l.second < r.second; });

std::cout << *it << std::endl;
}

我想计算 map 中的最小值。

这段代码编译失败。我认为使用 std::min_element 返回的迭代器的方法是引用它。没有?

std::cout 行上的错误消息是“二进制表达式的无效操作数”。

最佳答案

std::map::iterator::value_type (即 *it 的类型)是 std::pair<const double,double> ,并且没有 operator<<(std::ostream &, std::pair<const double,double>) 的标准重载.

你可以定义一个,或者做类似 std::cout << it->first << ' ' << it->second << std::endl; 的事情.

关于c++ - 无法在 std::min_element 的返回值上编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52406856/

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