社区
C++ 语言
帖子详情
c++ 函数返回值的一点疑惑
zqz981
2009-03-05 12:17:24
在写程序的时候,比如返回 vector 或者 list 的函数。
以前我直接返回 vector, 现在更多时候我返回函数指针。
这样就要在函数内部创建 new。
返回指针的目的是为了避免数值拷贝的时间。
我想问问,通常情况下 这种数值拷贝时间占用的多吗?
通常情况下你们是怎么考虑这个问题的呢?
...全文
134
9
打赏
收藏
c++ 函数返回值的一点疑惑
在写程序的时候,比如返回 vector 或者 list 的函数。 以前我直接返回 vector, 现在更多时候我返回函数指针。 这样就要在函数内部创建 new。 返回指针的目的是为了避免数值拷贝的时间。 我想问问,通常情况下 这种数值拷贝时间占用的多吗? 通常情况下你们是怎么考虑这个问题的呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yangch_nhcmo
2009-03-05
打赏
举报
回复
看返回数据类型了,内置对象一般返回值,其它返回指针或引用
zhuxueling
2009-03-05
打赏
举报
回复
乱用指针不是很好事,new和delete的开销很大的,在小对象上很明显。
malganis00
2009-03-05
打赏
举报
回复
一般内置类型用值返回
类类型用引用或者指针
可以看看《effective c++》
zhuxueling
2009-03-05
打赏
举报
回复
class A;
A func( ...){
A temp;
};
A value=func( ...);
这样的情况,temp的表现,就像没有这个变量一样的。 不构造,不析构,不复制,所有的操作,都直接发生在value上的。
不过,要是把 A value=func(...);
改为
A value;
value = func( ...);
开销就很大。
如果value己事先构造好,
可以考虑:
value.swap( func(...));
如果不喜欢这样的语法,重载一下操作符,比如:
value << func( ...);
猫已经找不回了
2009-03-05
打赏
举报
回复
尽量别在函数内部new一些变量,然后传出去,这样不好.
你不如在外部new好,作参数传进去都好啊.
lightnut
2009-03-05
打赏
举报
回复
一般通过引用将vector/list等集合类在函数间传递.
如:
void funtion( vector<int>& v)
{
.......
// do to modify v
......
}
Sco_field
2009-03-05
打赏
举报
回复
看你返回的类型是内置的还是类了吧
类的话一般传引用或指针比较好,内置类型一般情况下无所谓吧。
ysysbaobei
2009-03-05
打赏
举报
回复
顶
zqz981
2009-03-05
打赏
举报
回复
获益良多 谢谢啦
C++
函数
返回值
首先,强调
一点
,和
函数
传参一样,
函数
返回时也会做一个拷贝。从某种角度上看,和传参一样,也分为三种: 一般(传统)返回:返回任意类型的数据类型,会有一个拷贝,对于复杂对象效率低下;例如:int test(){}或者 Point test(){} 返回指针:返回一个指针,也叫指针类型的
函数
;例如:int *test(){} 或者 Point *test(){} 返回引用:返回一个引用,也叫引用类...
C++
函数
返回值
和返回引用
C++
函数
的返回过程基本可以分为两个阶段,返回阶段和绑定阶段,根据两个阶段中需要返回的值的类型不同(
返回值
和引用),和要绑定的值的类型(绑定值和引用)会产生不同的情况。 最基本的规则是先返回,再绑定,返回和绑定的时候,都有可能发生移动或者拷贝构造
函数
的调用来创建临时对象,并且只会发生一次。更具体的,当
返回值
的时候,
函数
返回之前,会调用一次拷贝构造
函数
或移动构造
函数
,
函数
在绑定到值的时候,会发生一...
【
C++
】main
函数
及
返回值
深度解析
main
函数
介绍 main
函数
怎么写 main
函数
的作用 main()
函数
不是程序最先执行的 main
函数
参数介绍 main
函数
无参列表 main
函数
有参列表 main
函数
返回值
介绍 mian
函数
返回值
的类型 mian
函数
返回值
的方式
C++
引用作为
函数
返回值
(1)以引用返回
函数
值,定义
函数
时需要在
函数
名前加 & (2)用引用返回一个
函数
值的最大好处是,在内存中不产生被
返回值
的副本。 引用作为
返回值
,必须遵守以下规则: (1)不能返回局部变量的引用。主要原因是局部变量会在
函数
返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。 #include <iostream> using namespace s...
C++
函数
返回值
介绍
你好,我是悦创。
C++
函数
返回值
介绍(含return 0 与 return 1 与 return -1介绍) 很多人在学习
C++
的过程中应该会留意到
返回值
的问题,特别是习惯用:int main() 的猿类同伴们。我们需要在
函数
结尾写个
返回值
。 int main(){ return 0; } 一、
返回值
类型
C++
函数
可以返回多种类型,大致可分4种: 返回 void(无
返回值
); 返回对象(内置类型对象和自定义对象); 返回指针(普通指针和
函数
指针); 返回引用;
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章