gpt4 book ai didi

c++ - 如何在 C++ 中将两个元组作为参数发送

转载 作者:太空狗 更新时间:2023-10-29 20:05:28 26 4
gpt4 key购买 nike

你好,我是 C++ 的新手,我正在尝试编写一个程序,它接受两个复数,对它们求和并返回总和。

我打算做的是将两个元组发送到一个函数中并返回一个元组。

typedef tuple<float, float> complex_tuple;
complex_tuple a_tuple(a, b);
complex_tuple b_tuple(c, d);


cout << sum(a_tuple, b_tuple);

这是我的职责:

tuple<float,float> sum(tuple<float, float>a, tuple<float, float>b){
float a_real= get<0>(a);
float a_imag= get<1>(a);
float b_real= get<0>(b);
float b_imag= get<1>(b);
return tuple<float, float>(a_real+b_real, a_imag+b_imag);
}

我得到的错误是:

0.cc:28:31: Error: no match for "operator<<" in "std::cout << sum(std::tuple<float, float>, std::tuple<float, float>)(b_tuple)"

我做错了什么?

最佳答案

你试图说你想将总和打印到 cout ,但是cout不知道如何处理 complex_tuple 类型的值.

提供 operator<<(ostream&, const complex_tuple&) 的重载允许代码编译:

ostream& operator<<(ostream& os, const complex_tuple& tuple) {
os << get<0>(tuple) << "+" << get<1>(tuple) << "i";
return os;
}

Further information .

关于c++ - 如何在 C++ 中将两个元组作为参数发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195367/

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