我有两个 vector :
std::vector<Foo> original;
std::vector<Foo *> pointers;
目前,我正在检查 original
并使用 push_back
将值从它复制到 pointers
。
例如像这样:
pointers.push_back(&(*original.at(0));
有没有办法使用 vector 的 assign
或 insert
方法来完成这个?
感谢您的帮助。
最佳答案
不,没有。
您所做的最终会导致段错误或类似问题的原因有很多。主要是,您的指针 vector 指向原始 vector 中元素的地址。当您推回到原始 vector 时,元素可能会移动到其他地方并且地址不再有效。
关于c++ - vector 分配/插入和转换值分配/插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15751222/