我必须创建一个向量,其中包含另一个向量的选定元素。在一个向量中进行的更改也应反映在另一个向量中。所以我必须使用我打算复制的元素的参考。如何获得一个向量中元素的引用
例如,
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