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