迭代器失效的原理是什么解决办法
迭代器失效的原理是什么
对于vector容器,假设有迭代器it1指向容器中第三个元素,it2指向第四个元素。那么,现在我用erase(it1)删除第三个元素,为什么it1,it2会失效呢。
我是这样想的,当第三个元素被删除时,it1指向的的地址 存储了移上来的第四个元素,it2指向了移上来的第五个元素。但事实是,it1,it2和指向之后元素的迭代器都失效了;那我就不能懂了,我的想法是建立在vector是连续存储的基础上的。
求解释。
还有deque容器为什么可以在首尾部不断的插入,而不会有重新加载的问题。
两个疑惑,求解释
------解决方案--------------------
对于vector容器,假设有迭代器it1指向容器中第三个元素,it2指向第四个元素。那么,现在我用erase(it1)删除第三个元素,为什么it1,it2会失效呢。
我是这样想的,当第三个元素被删除时,it1指向的的地址 存储了移上来的第四个元素,it2指向了移上来的第五个元素。但事实是,it1,it2和指向之后元素的迭代器都失效了;那我就不能懂了,我的想法是建立在vector是连续存储的基础上的。
求解释。
还有deque容器为什么可以在首尾部不断的插入,而不会有重新加载的问题。
两个疑惑,求解释
------解决方案--------------------