我有一个与矢量有关的问题,尤其是选项 .push_back() 和 .resize()。使用此选项时,当当前向量容量超出时,c++(STL) 将始终重新分配每个元素。这对我来说是个问题,因为我确实有一个结构对象向量。
std::vector<node> v;
我的结构看起来像这样并保持指向向量其他元素的指针
struct node
{
std::array<node*, nrOfNeigh> neighb;
node* parentNode;
double density;
...
}
因为我的结构确实有指向向量其他元素的指针,所以在使用 .push_back() 时,这种依赖关系将不再有效。
你们中有人有避免这种情况的想法吗?
我不希望有办法强制 std::vector 不重新分配。我已经尝试使用 .reserve() 并因此尽可能多地保留。这是可能的,但从内存管理的角度来看并不好。