移动向量会使迭代器无效吗?
如果我在vector中有一个迭代器a,那么我b从中移动向量或移动分配向量a,该迭代器是否仍指向同一元素(现在在vector中b)?这就是我在代码中的意思: #include <vector> #include <iostream> int main(int argc, char *argv[]) { std::vector<int>::iterator a_iter; std::vector<int> b; { std::vector<int> a{1, 2, 3, 4, 5}; a_iter = a.begin() + 2; b = std::move(a); } std::cout << *a_iter << std::endl; // Is a_iter valid here? return 0; } 是否a_iter仍然有效的,因为a已移入b,或者是通过招无效的迭代器?供参考,std::vector::swap 不会使迭代器无效。