我必須創建一個向量,其中包含另一個向量的選定元素。在一個向量中進行的更改也應反映在另一個向量中。所以我必須使用我打算複製的元素的參考。如何獲得一個向量中元素的引用
例如,
std::vector<int> a{1,2,3,4,5,6};
std::vector<int> b;
假設如果我參考複製奇數號碼b
矢量,b
將包含1,3和5,如果我改變b
值,同樣的變化應a
可以看出矢量也。
在STL中這樣做的方法是什麼?
編輯:
我是在假設相同的內存地址位置可以由多個變量共享。
上述代碼的目的是將未知變量的較小向量傳遞給需要解決的外部求解器。由於更改將在更大的矢量中自動更新,因此我不需要跟蹤它。看來我必須使用指針來達到上述目的。
這很危險。添加新元素時,「std :: vector」可能會重新分配其內部緩衝區。因此,'b'將失去其參考。順便說一句。我曾經回答過一個類似的問題:[現有對象向量](https://stackoverflow.com/questions/42039110/vector-of-existing-objests/42039844#42039844)。 (它使用user2079303提出的'std :: reference_wrapper'。) – Scheff
爲什麼你首先需要第二個向量?如果你想修改'a'中的所有奇數條目,那麼在我的程序較大的向量中更簡單地修改'a' – user463035818
@ tobi303中的奇數條目是未解決的變量,我將傳遞它的一些元素(較小的向量)到外部庫來解決這些變量。 – hisham