24小时热门版块排行榜    

查看: 1484  |  回复: 5

zhuwei04

木虫 (正式写手)

[求助] [求助]C/C++中多个返回值的问题

C++中的函数是否能设定多个输出值

例如:
有一个函数fun(a,b,c,d,e),a、b、c、d、e是输入参数,通过函数计算得到f1=a+b;f2=a+c+d+e,要返回f1和f2的值应该怎么实现?

谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hxz

木虫 (正式写手)

【答案】应助回帖


xzhdty(金币+1): 谢谢你的应助 2011-04-30 09:12:53
zhuwei04(金币+5): 嗯,谢谢指教 2011-04-30 10:02:51
c++不能返回多个值
如果需要返回多个值, 一般有两种替代做法:
1. 利用函数的副作用, 返回值在函数外定义, 在函数内修改, 一般为void函数
2. 把返回值打包返回, 如把返回值打包成一个结构返回

ps, 如果想要真正的多值返回, 请用lisp
2楼2011-04-30 09:02:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 谢谢参与应助! 2011-04-30 19:09:19
一般做法就是传入指针,在函数中修改返回值
CODE:
void foo(int *f1, int *f2, int a, int b, int c, int d, int e)
{
    f1=a+b;
    f2=a+c+d+e;
}

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2011-04-30 14:54:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

来自天狼

木虫 (正式写手)

★ ★
微尘、梦想(金币+2): 谢谢回帖交流! 2011-04-30 19:09:41
引用回帖:
Originally posted by libralibra at 2011-04-30 14:54:31:
一般做法就是传入指针,在函数中修改返回值
CODE:
void foo(int *f1, int *f2, int a, int b, int c, int d, int e)
{
    f1=a+b;
    f2=a+c+d+e;
}


楼上的,错了,应该是
void foo(int *f1, int *f2, int a, int b, int c, int d, int e)
{
    *f1=a+b;
    *f2=a+c+d+e;
}
也可以用引用
void foo(int &f1, int &f2, int a, int b, int c, int d, int e)
{
    f1=a+b;
    f2=a+c+d+e;
}
4楼2011-04-30 16:29:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

引用回帖:
Originally posted by 来自天狼 at 2011-04-30 16:29:24:
楼上的,错了,应该是
void foo(int *f1, int *f2, int a, int b, int c, int d, int e)
{
    *f1=a+b;
    *f2=a+c+d+e;
}
也可以用引用
void foo(int &f1, int &f2, int a, int b, int c, i ...

恩呢,手误了,^_^,应该是*f1和*f2
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
5楼2011-04-30 17:49:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 谢谢回复! 2011-05-01 18:21:24
标准的C++做法是pair:
CODE:
#include
std::pair func(int a, int b, int c, int d, int e){
     return std::pair(a+b, a+c+d+e);
}

避免性能损失当然采用指针和引用,但是也不是说不存在抵消性能的办法,Qt的隐式共享就可以达到这样的可读性且没有性能损失。
漩涡的中心有一块空地,空空的。
6楼2011-05-01 10:25:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhuwei04 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 关于filecode +3 布布和一二 2026-08-07 6/300 2026-08-07 17:51 by 医学老男孩
[基金申请] 关于代码变化问题,想知道的进来 +5 且听虎啸 2026-08-07 8/400 2026-08-07 17:17 by gltch
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 听说今天filecode变了 +24 布布和一二 2026-08-06 47/2350 2026-08-07 16:02 by zhiyanjiang
[基金申请] filecode与中标关系的预测 +3 布布和一二 2026-08-07 3/150 2026-08-07 15:09 by gltch
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[论文投稿] 十年后又回来了,论文投稿求助 +4 哈哈114477 2026-08-01 4/200 2026-08-07 14:39 by jgy194592
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] 关于豆爷回答的JTJC与%2F数量 +4 yang182083 2026-08-06 6/300 2026-08-07 12:43 by 虫友是什么虫
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] 基金中了 +11 laoda193707 2026-08-06 11/550 2026-08-07 10:54 by TT和NN
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +9 archvillain 2026-08-04 11/550 2026-08-05 20:06 by wlwhappy
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
[基金申请] 有没有H口的?有收到消息的吗? +3 超级海虾 2026-08-04 3/150 2026-08-04 17:26 by 学教育滴
[基金申请] 纯娱乐,不喜欢勿喷 +7 Tide man 2026-08-04 10/500 2026-08-04 15:10 by loufangrui
[基金申请] 面上提前没消息,有中的吗 +14 archvillain 2026-08-02 18/900 2026-08-04 14:42 by archvillain
[基金申请] 什么时候能放榜呀? +3 Jacob678 2026-08-03 3/150 2026-08-03 16:14 by gltch
信息提示
请填处理意见