假设您有自定义类型
class Foo {}
通过const引用将类型为Foo的向量传递给像这样的方法
的正确方法void f(const std::vector<const Foo&>& bar);
或者我应该这样做,
void f(const std::vector<Foo>& bar);
我更想知道我应该选择哪一个。
答案 0 :(得分:1)
您应该传递const std::vector<Foo>&
作为类型。这可以防止在调用函数时获取向量的值副本。
请注意,当前标准不允许std::vector<Foo&>
:std::vector
不能包含引用类型。