当vector的容量发生变化时(例如添加或删除元素),迭代器可能会失效,这可能导致程序错误。 迭代器失效的情况: 1、重新分配内存 当向vector添加新元素导致其容量不足时,vector会自动扩展以容纳更多的元素。这种情况下,所有指向旧内存区域的迭代器、指针和引用都会失效。 复制 #include <iostream> #include <vector> int ...
在新的空间复制原理来的元素,并插入新的元素,最后撤销原来的空间,这种情况发生会使所有迭代器都失效。 总结:vector迭代器的几种失效的情况: 1.当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。 2.当插入(push_back)一个元素后,capacity返回值与没有插入元素之前相比有改变,则需要重新加载整个容器,此...