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...