0
在下面的代碼中,我想將矢量v
設置爲矢量in
,但未複製其內容,但由於v已被聲明,因此無法使用像vector<int> &v = in
這樣的引用。我應該做些什麼來防止複製?從不是到作爲一個別名將預先聲明但未初始化的矢量設置爲另一個別名
class pt
{
private:
vector<int> v;
int size;
public:
void construct(int n)
{
for (int i = n - 1; i >= 0; --i)
{
v[i] = v[i - 1] + v[i - 2];
}
}
pt(vector<int>& in, bool no_Copy = false)
{
if (no_Copy)
{
&v = in; //I want to fix this
}
else {}
construct(in.size());
}
//other functions which use `v`
};
聲明「將矢量A設置爲矢量B而不復制其內容」在C++中沒有任何意義。這就像是說:「拿着左邊閃亮球的盒子,把這個盒子放在你的右邊,但是沒有在盒子裏面移動任何閃亮的球,它們必須留在你的左邊。 –
我認爲這可能是一個[ XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你真正想要解決的問題是什麼?'pt'的目的是什麼? – Brian
@SamVarshavchik我的意思是類似於像'vector&v ='這樣的參考文件' –
user8611116