使用一对作为另一个函数的参数

时间:2015-12-12 20:08:09

标签: c++ function return std-pair

我有一个返回std::pair<int, double>的函数。

我想创建另一个函数来使用上一个函数中的对并查看该对中的数据,即第一个和第二个。是否可以将前一个函数的返回作为新函数的参数传递,以便第二个函数可以查看数据?我不确定C ++中的语法。

2 个答案:

答案 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);
}

等等......