C++ Использование пары в качестве параметра из другой функции

У меня есть функция, которая возвращает std::pair<int, double>,

Я хочу создать другую функцию, чтобы использовать пару из предыдущей функции и просматривать данные в паре, т.е. как первую, так и вторую. Можно ли передать возврат предыдущей функции в качестве параметра моей новой функции, чтобы вторая функция могла просматривать данные? Я не уверен насчет синтаксиса в C++.

2 ответа

void func2( const std::pair <int, double>& data )
{

}

std::pair <int, double> func1 ( /* ... * / )
{
   //return pair
}

Тогда позвони

 func2 ( fun1( /*... */ ) );

Я предполагаю, что вы имеете в виду что-то вроде примера выше:

#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);
}

И так далее...

Другие вопросы по тегам