如何获取和存储向量中元素的指针/引用而不用担心内部向量重新分配?
例如:
std::vector<int> v1;
v1.push_back(10);
std::vector<int*> v2;
v2.push_back(&v1[0]);
即使 v2
位于另一个作用域/函数/类中,如果
v1
会在内部重新分配内存,它也可以安全地存储指向
v1
值的指针。怎么做呢?或者也许另一个容器类更适合这项任务?
您可以预先预留空间,只要向量不增长超出指定的容量,那么指向向量元素的指针、引用和迭代器将保持有效。这也是矢量的工作原理。