You ' re still not safe from memory leaks what happens if myintvec . emplacebackmightkeep throws an exception ? If you want safety , use stduniqueptrT or , if a pointer needs multiple owners stdsharedptrT . stduniqueptrT is just as efficient as handwritten code , but much safer , since it will automatically handle cleanup for you . But I ' m not seeing why need a pointer at all . What ' s wrong with const Type mightKeep someValueFunction i fisGoingToBeKeptmightKeep mytypevec . e m placebackstdmovemightKeep Move , in case Type can be efficiently moved . We don ' t need it after this anyway . Finished with mightKeep . That ' s fine , but do I need to call that extra delete after adding to the container or will doing so screw my data ? That is necessary . For every new , you must call delete once and only once on the pointer you created . It ' s a pain , and that ' s why smart pointers were invented . Also , I guess using pushback instead of emplaceback would make a difference too , what kind of difference ? Not in this case . The difference pushing and emplacing isn ' t really relevant here , but I ' ll go into it anywayImagine you have a class class Widget public Widgetconst Thingy , const Tool Skip implementation . Now we want a stdvectorWidget wv , which we are creating on the fly , with pushback we have to do this Thingy thingy Tool tool wv . pushbackWidgetthingy , toolThis creates a temporary Widget , and then moves it or copies it into wv . But if Widget isn ' t cheap to move or copy or maybe can ' t be moved or copied for some reason this call will fail . Using emplaceback lets us construct the object directly into the wv by passing it the arguments to one of Widget ' s constructors . Thingy thingy Tool tool wv . emplacebackthingy , toolThis saves us an extra copy . You can normally still do wv . emplacebackWidgetthingy , toolThis works if Widget has a move or copyconstructor . In my actual program , I ' m not using int ' s but ever growing as I develop structs that have , in previous now solved pointer issues . Best solution to this don ' t use raw pointers . Smart pointers are your friends .