vector中的迭代器失效

2021-09-27 11:47:04 字數 595 閱讀 7195

vector容器:

迭代器的失效:如果給容器進行增添、刪除的時候改變了容量的大小,這個時候迭代器任然指向原來的那個空間的那個位置,但是原來的空間經過容量的變化之後已經被改變了,所以這個時候迭代器會出現失效的情況,如果想要解決這個問題的話,可以通過接受返回值來讓迭代器指向新的空間。

**示例:

#include #include using namespace std;

void printvector(const vector& v)

cout << endl;

}int main()

} printvector(vi);

return 0;

}

在上面的**示例中,insert與erase函式的使用中,會可能出現迭代器失效的情況,所以這個時候如果我們還要使用迭代器的話,可以選擇將迭代器返回,這個時候才能得到新的迭代器的正確的位置

由此我們也可以得出,在insert與erase的過程中,如果使用自己寫的這兩個函式的話,返回值是iterator

vector迭代器失效

c 面試題經常會背問到vector和list的區別,其中就有乙個問題就困擾我們的,面試官說vector在進行插入和刪除元素的時候迭代器會失效,list不會,那這邊由我來給大家舉個列子 include include using namespace std int main include inclu...

vector的迭代器失效

大家知道vector容器與陣列的不同之處在於,vector可以自動擴容它的容量,是乙個動態的陣列,而我們的普通陣列的容量時固定死的。當vector內元素的數量等於vector容量的時候,再向vector中插入資料,vector會自動申請一塊兒更大的記憶體空間,並將原來的資料拷貝過去,並存將新的元素插...

vector迭代器失效的處理

1 這裡先給幾個我們經常遇到的問題 vs2012編譯器 include include using namespace std int main for vector iterator it a.begin it a.end it cout 這裡再呈現乙個問題 vectora for int i 0...