本文共 862 字,大约阅读时间需要 2 分钟。
(底层时一个可动态扩容的数组,数据的增加与删除都会影响到其他的数据的位置,所以当进行数据增删的时候,其他数据的迭代器有可能会失效)
当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。
当插入(push_back)一个元素后,capacity返回值与没有插入元素之前相比有改变,则需要重新加载整个容器,此时begin和end操作返回的迭代器都会失效。
当进行删除操作(erase,pop_back)后,指向删除点的迭代器全部失效;指向删除点后面的元素的迭代器也将全部失效。
(底层时一个可动态扩容的数组,数据的增加与删除都会影响到其他的数据的位置,所以当进行数据增删的时候,其他数据的迭代器有可能会失效)
在deque容器首部或者尾部插入元素不会使得任何迭代器失效。
在其首部或尾部删除元素则只会使指向被删除元素的迭代器失效。
在deque容器的任何其他位置的插入和删除操作将使指向该容器元素的所有迭代器失效。
关联容器删除一个元素的时候,当前的迭代器会失效,其他的迭代器不会失效,增加一个元素的时候,迭代器不会失效
关联容器底层的数据结构 有序关联容器->>红黑树(每个数据一个节点,所以其他数据的删除不影响当前节点的内存的位置) 无序关联容器->>哈希表(链式哈希表,每个数据存储占据一个节点,所以增删操作,数据之间相互不影响)转载地址:http://uanwi.baihongyu.com/