Case Analysis of remove and erase in C++
This article introduces the relevant knowledge of "case Analysis of remove and erase in C++". In the operation of actual cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!
Introduction to erase
The prototype of erase function in vector is as follows:
Iterator erase (const_iterator position); iterator erase (const_iterator first, const_iterator last)
Used to delete an element or segment of an vector container.
When deleting an element, its parameter is an iterator that points to the corresponding element; when deleting an element, it is an iterator that points to the beginning of one element and an iterator that points to the next element at the end of the element.
When erase is called, the vector element moves forward, so you need to pay special attention to this feature to avoid out-of-bounds access and missed handling.
Sample code:
Int main (int argc, char * argv []) {vector myVector; myVector.push_back (1); myVector.push_back (2); myVector.push_back (3); myVector.push_back (4); myVector.push_back (3); myVector.push_back (3) MyVector.push_back (3); for (vector::iterator itr = myVector.begin (); itr! = myVector.end (); itr++) {if (* itr = = 3) {/ / now itr has pointed to the new next element If you do not perform an offset between itr-- and itr++, it will exceed the end and cause a crash. Itr = myVector.erase (itr); itr--;}} cout