2014-01-26 20 views
0

我應該如何在C++函數中傳遞只讀向量?我應該如何在C++函數中傳遞只讀向量?

一種方式來做到這一點是通常的方式爲const &

const vector<string>& input 

,但我在想,也許我應該做的,而不是這樣:

const vector<const string&>& input 

我不知道哪一個是更好。基本上我想通過 一個矢量僅用於閱讀的目的,我想有效地做到這一點, 並避免不必要的副本。

回答

3

引用的向量在C++中是不可能的,並且根本不會編譯(因爲引用可能在沒有存儲的情況下實現)。

除此之外,即使有可能你不能簡單地將std::vector<T>轉換爲std::vector<T&>std::vector<T*>(這是可能的)。

現在除了技術方面:沒有必要這樣做。它實際上會產生更多的開銷。如果你傳遞了一個對你的向量的引用,它的數據完全保持不變。唯一完成的操作是向棧上的向量地址的PUSH

因此,請隨你的第一個解決方案

相關問題