向顺序容器vector、string、deque、list、forward_list中插入\删除元素时迭代器、引用、指针的变化
?
1、插入元素
(1)對于vector、string來說,當在某個位置插入元素后,如果內存空間重新分配,則指向任何位置的迭代器、指針、引用都會失效;
???如果內存空間沒有重新分配,則在插入位置之前的迭代器、指針、引用仍有效,插入位置之后的迭代器、指針、引用都失效;
???注意:插入元素后,尾后跌代器都會失效.
(2)對于deque來說,在除了首尾位置之外任何位置插入元素跌代器、指針、引用都會失效;但是在首尾位置插入元素時,跌代器會失效,指針、引用仍有效;
(3)對于list、forward_list而言,任何位置插入元素,跌代器、指針、引用都不會失效;
2、刪除元素
(1)對于vector、string來說,當在某個位置刪除元素后,如果內存空間重新分配,則指向任何位置的迭代器、指針、引用都會失效;
???如果內存空間沒有重新分配,則在刪除位置之前的迭代器、指針、引用仍有效,刪除位置之后的迭代器、指針、引用都失效;
???注意:刪除元素后,尾后跌代器都會失效.
(2)對于deque來說,在除了首尾位置之外任何位置刪除元素跌代器、指針、引用都會失效;但是在首尾位置刪除元素時,跌代器會失效,指針、引用仍有效;
(3)對于list、forward_list而言,任何位置刪除元素,跌代器、指針、引用都不會失效;
?
對于插入、刪除操作,list、forward_list都不會失效,穩定性最強;vector、string的尾后迭代器都會失效;deque的穩定性最弱;
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的向顺序容器vector、string、deque、list、forward_list中插入\删除元素时迭代器、引用、指针的变化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数组赋值给vector和list,顺便说
- 下一篇: Mysql 添加字段 修改字段 删除字段