例如:
thrust::device_vector<float> vec(...);
thrust::device_vector<float>::iterator i = vec.begin();
vec.resize(...); // vec may get reallocated and moved in memory here
现在,vec.begin()
是否已更新并仍然有效地指向vec
的开头?
答案 0 :(得分:3)
调整大小后,如果向量最初没有足够的空间,则迭代器将失效,因此您必须回忆vec.begin()
以获得新的有效迭代器。