To elaborate a bit more. Your data member "empID" will have its destructor implicitly called when your object of class "heap" gets destroyed. And since std::vector will release all its memory in its destructor, there is nothing you need to do in your destructor (it is all done implicitly, that's the magic of RAII).
By opposition, if you have a dynamically allocated array that you hold with a pointer, then you would need the "delete[] ptr;" in your destructor because the destructor for pointer types does nothing to release the pointed-to memory (in fact the destructor for any primitive type is empty).
In that sense, STL containers are very safe when it comes to preventing memory leaks. In fact, if you use only RAII components, then the memory management coding-efforts are greatly reduced (and virtually all class-destructors turn out to be empty or omitted).