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
Post a Comment