c++可以用return语句返回两个变量么

2024-12-28 08:33:53
推荐回答(3个)
回答1:

return一次只能返回一个值。C++标准库提供了一些模板可以让你“同时”返回多个值。


返回两个类型相同或者不同的值:

#include 
std::pair Ret2Val() {
    return std::pair( 255, 3.14 );
}

返回多个类型相同的值:

#include 
std::vector RetMulVals() {
    std::vector ret;
    ret.push_back( 3 );
    ret.push_back( 1 );
    ret.push_back( 4 );
    return ret;
}

返回多个类型不同的值:

#include 
#include 
#include 

enum class Sex {
    Male,
    Female,
    Unknown
};
std::tuple RetAStu() {
    return std::tuple( "张三", Sex::Male, 32 );


int main() {
    
    auto zhangSan = RetAStu();
    
    std::cout << "姓名: " << std::get<0>( zhangSan ) << std::endl;
    std::cout << "性别: " << ( std::get<1>( zhangSan ) == Sex::Male ? "男性" : ( std::get<1>( zhangSan ) == Sex::Female ? "女性" : "未知" ) ) << std::endl; 
    std::cout << "年龄: " << std::get<2>( zhangSan ) << std::endl;
    system( "pause" );
}

回答2:

不能,要么用引用传参,要么就返回一个指针。

回答3:

不能,可以用两个引用型的参数