- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
两个问题合而为一...
对于实时视频处理应用程序,我有许多函数每帧调用多次。听取有关 const 和按引用传递的建议,这些函数的签名有点像这样
void processSomething(const int& value);
当我不断输入几个额外的字符时,我想知道这是否有点矫枉过正。
第二个问题,关于通过引用传递的主题,在 QT 的槽/信号机制中,通过引用传递是否有助于防止在正常函数调用中复制对象?
最佳答案
是的,这是矫枉过正,实际上会导致代码比按值传递 int 慢。一个 int 是四个字节;引用(本质上是一个内存地址)也是四个字节(在 32 位机器上)或八个字节(在 64 位机器上)。因此,您实际上可能需要将更多 信息传递给该函数——此外,您还需要取消对该引用的引用。
但是,如果您要传递比 int 更大的东西,使用 const 引用会更有效,因为您可以只传递四个或八个字节,而不必复制整个对象。
编辑 关于 Qt:是的,如果插槽采用对对象的 const 引用,那么这样做的原因是为了节省复制对象的开销。
关于C++ 和 QT4.5 - 传递一个 const int& 矫枉过正?通过引用传递对信号/插槽有帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333176/
我有一个对象需要序列化为 EDI 格式。对于这个例子,我们假设它是一辆汽车。汽车可能不是 b/c 选项随时间变化的最佳示例,但对于真实对象,枚举永远不会改变。 我有很多像下面这样的应用了自定义属性的枚
我正在从 Beginning Javascript 学习 Javascript(很有趣!),书中的一个特定示例似乎有点矫枉过正。我知道他们有时会做一些严格来说不是最佳实践的事情 - 例如使用 docu
我应该使用 NSNumber 还是字符串来保存一个简单的“playerID 号码”,现在它是一个整数,因为我想用 Core Data 保存它? 在我的数据模型中,我将 playerID 设置为整数 1
我目前正在做一些网络相关的事情, public void postData() { HttpClient httpclient = new DefaultHttpClient(); HttpPost
我们正在建立一个我们可以使用的 Laravel 4 基础项目。我想创建一个默认路由规则,让开发人员可以轻松地创建新页面,而不必担心向 Controller 添加路由,但可以为任何更复杂的路由/ Con
已在所有 SO 帖子中努力搜索,但仍找不到答案。我的动画很长,很抱歉发了这么长的帖子! 它在 Chrome 上运行良好,但在 Firefox 30.0 上运行不正常,我不明白为什么。 我真的需要这么多
您好,我目前正在为我的项目使用 channel API。我的客户端是一个标牌播放器,它仅在用户更改媒体内容时才从 App Engine 服务器接收数据。 Appengine 每天只向客户端发送一次或两
我开始将 WebApi 和 OData 集成到测试平台应用程序中。让我们保持简单并坚持使用一个域实体 Customer。显然我会有一个 MVC Controller 。搜索得到它自己的 View 模型
两个问题合而为一... 对于实时视频处理应用程序,我有许多函数每帧调用多次。听取有关 const 和按引用传递的建议,这些函数的签名有点像这样 void processSomething(const
我是一名优秀的程序员,十分优秀!