24小时热门版块排行榜    

查看: 1517  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上复盘~欢迎讨论 (金币+5) +11 晴天加油 2026-08-26 12/600 2026-08-28 01:22 by li09465290@
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 XLGfUIdOmEAO 2026-08-27 3/150 2026-08-28 00:49 by 3RAFyYXYSwGS
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +7 苏东坡二世 2026-08-23 7/350 2026-08-27 18:14 by 瞬息宇宙
[基金申请] 基金未中,这种答复是模板吗? +5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 系统查不到 +10 董八千 2026-08-26 10/500 2026-08-26 16:30 by Equinoxhua
[基金申请] 怎么查啊 +5 huang1991js 2026-08-26 5/250 2026-08-26 16:09 by Equinoxhua
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
信息提示
请填处理意见