c++函数怎么返回多个值

文章目录


代码地址:https://github.com/Phoenix8215/CplusplusMagicalCrafts

  1. 使用结构体或类:定义一个结构体或类,其中包含了所有需要返回的值。然后在函数中返回这个结构体或类的实例。

    struct Result {
        int value1;
        double value2;
        char value3;
    };
    
    Result myFunction() {
        Result r;
        r.value1 = 1;
        r.value2 = 2.0;
        r.value3 = 'a';
        return r;
    }
    
  2. 使用元组(C++11 及更高版本):使用 std::tuple 可以返回不同类型的多个值。

    #include 
    
    std::tuple<int, double, char> myFunction() {
        return std::make_tuple(1, 2.0, 'a');
    }
    
    // 调用
    auto [value1, value2, value3] = myFunction();
    
  3. 使用引用或指针参数:通过引用或指针传递额外的参数给函数,让函数可以修改这些参数。

    void myFunction(int &outValue1, double &outValue2, char &outValue3) {
        outValue1 = 1;
        outValue2 = 2.0;
        outValue3 = 'a';
    }
    
    // 调用
    int value1;
    double value2;
    char value3;
    myFunction(value1, value2, value3);
    
  4. 使用 std::pair(主要用于返回两个值):当只需要返回两个值时,std::pair 是一个简单的选择。

    #include 
    
    std::pair<int, double> myFunction() {
        return std::make_pair(1, 2.0);
    }
    
    // 调用
    auto [value1, value2] = myFunction();
    

每种方法都有其适用场景,可以根据实际需要和个人偏好来选择。例如,当返回的值类型和数量都固定时,使用结构体或类是一个不错的选择;当返回的值类型不同或数量不定时,使用元组可能更加灵活。使用引用或指针参数则可以避免返回值,但需要更注意函数的使用方式以防止出错。

你可能感兴趣的:(C++,c++,开发语言,算法)