从c ++中的一个函数返回两个值

时间:2015-12-10 12:49:32

标签: c++ function return-value

我可以从函数1 intiger和boolean返回两个值吗?我试图以这种方式做到这一点,但它不起作用。

int fun(int &x, int &c, bool &m){
        if(x*c >20){
           return x*c;
          m= true;
            }else{
                return x+c;
                m= false;
                }


fun(x, c, m);
    if(m) cout<<"returned true";
    else cout<<"returned false";

        }

2 个答案:

答案 0 :(得分:3)

您可以创建一个包含两个值作为其成员的结构。然后,您可以返回该结构,并访问各个成员。

值得庆幸的是,C++pair类为您完成此操作。要返回intbool,您可以使用pair<int,bool>

答案 1 :(得分:2)

您可以返回包含某些值的struct

struct data {
    int a; bool b;
};


struct data func(int val) {
    struct data ret;
    ret.a=val;
    if (val > 0) ret.b=true;
    else ret.b=false;
    return ret;
}


int main() {
    struct data result = func(3);
    // use this data here
    return 0;
}