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