面试题答案
一键面试-
优化方式:将值传递改为引用传递。
-
优化后的代码示例:
#include <iostream>
// 自定义大型结构体
struct BigStruct {
int data[1000];
// 其他成员变量
};
class MyClass {
public:
// 优化后的函数,使用引用传递
void process(const BigStruct& data) {
// 处理逻辑
for (int i = 0; i < 1000; ++i) {
// 例如对数据进行一些操作
std::cout << data.data[i] << std::endl;
}
}
};
- 优化原理:
- 值传递:在值传递时,函数调用时会创建实参的副本传递给函数形参。对于大型结构体
BigStruct
,复制整个结构体的开销较大,会消耗较多的时间和内存空间,从而影响性能。 - 引用传递:使用引用传递时,函数接收的是实参的别名,而不是实参的副本。这意味着不会创建额外的结构体副本,只是传递了一个引用(本质上是一个地址),大大减少了内存开销和复制操作的时间,提高了函数调用的性能。同时,使用
const
修饰引用参数,可以保证在函数内部不会意外修改传入的结构体内容,增强了程序的安全性。
- 值传递:在值传递时,函数调用时会创建实参的副本传递给函数形参。对于大型结构体