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);
}
И так далее...