我有一个返回std::pair<int, double>
的函数。
我想创建另一个函数来使用上一个函数中的对并查看该对中的数据,即第一个和第二个。是否可以将前一个函数的返回作为新函数的参数传递,以便第二个函数可以查看数据?我不确定C ++中的语法。
答案 0 :(得分:1)
void func2( const std::pair <int, double>& data )
{
}
std::pair <int, double> func1 ( /* ... * / )
{
//return pair
}
然后致电
func2 ( fun1( /*... */ ) );
答案 1 :(得分:1)
我猜你的意思与上面的例子类似:
#include <utility>
std::pair<int, double> create() {
return std::make_pair(4, 2.);
}
void accept(std::pair<int, double> p) { }
int main() {
accept(create());
}
回答是肯定的,你可以做到。
如果您不想传递接受该副本的副本,而是想要提交您正在主中使用的确切实例函数,您可以稍微修改函数原型,如下所示:
#include <utility>
std::pair<int, double> create() {
return std::make_pair(4, 2.);
}
void accept(std::pair<int, double>& p) { }
int main() {
auto p = create();
accept(p);
}
等等......