我应该如何在C ++函数中传递只读向量?

时间:2014-01-26 15:26:44

标签: c++ vector

如何在C ++函数中传递只读向量?

实现这一目标的一种方法是常规方式const&

const vector<string>& input

但我想知道我应该这样做:

const vector<const string&>& input

我不确定哪一个更好。基本上我想通过 一个矢量只用于阅读目的,我想有效地做到, 并避免不必要的副本。

1 个答案:

答案 0 :(得分:3)

在C ++中无法使用引用向量,根本不会编译(因为没有存储就可以实现引用)。

除此之外,即使你有可能只是简单地将std::vector<T>转换为std::vector<T&>std::vector<T*>(这是可能的)。

现在除了技术方面之外:没有必要这样做。它实际上会产生更多的开销。如果您传递对向量的引用,则其数据完全保持不变。唯一的操作是向量堆栈中地址的PUSH

请继续使用您的第一个解决方案