push_back()更改函数中其他向量的大小

时间:2019-01-26 15:35:12

标签: c++ vector unique-ptr

我正在创建一个类,该类具有一个将两个unique_ptrs向量连接在一起的函数。当我使用push_back函数时,参数向量的大小会发生变化,而且我也不知道为什么。

g

for循环不会停止运行,因为每次使用push_back方法时,c的大小也会增加1。

我还考虑过在for循环之前使用resize(),然后移动所有指针,但是我想知道为什么push_back方法会更改另一个向量。

1 个答案:

答案 0 :(得分:0)

当此A和c A对象相同时,即您试图在一个对象上调用concatenate并传递与param相同的对象进行连接时,可能会发生这种情况。 因此,实际上push_back不会改变另一个向量的大小。它与您正在处理的向量相同。

在旁注中,您的代码和发布几乎没有问题

  1. 正如@PaulMcKenzie所说,您应该发布MCVE
  2. 通常,从STL容器派生不是一个好主意
  3. 除非您尝试学习如何实现,否则首先应尝试查找和使用STL容器提供的方法。例如按照建议插入 @一些程序员花花公子。