gpt4 book ai didi

c++ - 如何使用 lambda 函数打印一对<>?

转载 作者:行者123 更新时间:2023-11-28 07:16:32 25 4
gpt4 key购买 nike

我想打印一对,例如

std::cout << make_pair(std::string,int) << endl;

但它无法编译,因为 operator<<(ostream &, std::pair<std::string,int>)未定义。

但是因为我们现在有带有 lambda 函数的 c++11,所以我可以将 lambda 函数与 for_each 一起使用在容器上工作的表达式。

对于上述情况,我如何提供一个可以被 ostream 用来打印对的“就地方法”?

最佳答案

对(和其他元组)并不真正像容器,因为它们的元素具有异构类型。它们不能以正常方式迭代。所以 lambda 在这里并不适用。

如果需要,只需定义一个 output_pair模板函数,它接受一个 ostream 和一个对,并输出对的两个元素。或者,如果您想保留提取样式,您可以使用 output_pair返回 output_pair_struct它除了保存元组的拷贝外什么都不做,并在 output_pair_struct 上定义一个运算符<<。哪个做了实际工作,这样你就可以拥有std::cout << output_pair(mypair) << endl; .

关于c++ - 如何使用 lambda 函数打印一对<>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20146622/

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