向量的重新分配是否会导致父向量的重新分配?

Does reallocation of a vector leads to a reallocation of the parent vector?

本文关键字:向量 分配 新分配 是否      更新时间:2023-10-16

看下面的代码片段。在所有平台上的所有情况下输出是否总是false ?

  std::vector<std::vector<int>> array(5);
  array[0].resize(1);
  std::vector<int>* arr_start = array.data();
  int* p_start = array[0].data();
  while( p_start == array[0].data())
  {
     array[0].push_back(0);
  }
  std::cout << "Does a reallocation in a vector leads to a reallocation in the parent vector? " 
            << array.data() != arr_start;

只允许对vector进行某些操作导致重分配。对vector的元素的操作永远不会这样做。

元素本身是一个vector的事实并没有改变这一点