c++ - How does this method of removing an element from a stack work? -


i started taking c++ class @ local college , instructor gave class assignment in must create vector , remove element middle of stack.

she provided example:

vect[3] = vect[vect.size()-1]; vect.pop_back(); 

now.. i've tested , works i'm unsure how works or why works. i'm sure provide simple explanation?

you want delete element middle of vector, overwrite last element (with index size()-1) - since last element becomes redundant, can pop_back() it. have desired result - vector size decreased 1 , old value @ vect[3] gone.

note doesn't preserve order of elements in vector, relatively efficient - erasing middle of vector may involve lot of memory copying since elements after element deleted need shifted 1 accommodate gap (remember: std::vector stores elements in continuous storage). erasing end costs nothing.


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -