【发布时间】:2017-06-21 18:14:27
【问题描述】:
什么时候需要使用“&”,什么时候不需要?
例如在下面,两个 for 循环都会产生相同的结果。
std::vector< Product* > itemByColor = pF.by_color( vecProds, Color::Red );
for( auto i : itemByColor )
{
std::cout << " product name <<" << i->name<< std::endl;
}
与
for( auto& i : itemByColor )
{
std::cout << " product name <<" << i->name<< std::endl;
}
【问题讨论】:
-
只要读取值,copy和reference应该没有太大区别
-
@sp2danny:对于较小的对象,例如
ints,获取引用实际上会降低性能。